strlen()遇”\0“就停止计数,是个坑啊。
今天将二十个字节头append到std::string str中。write时要转为char*,设定起始地址和长度,起始地址用str.c_str(),或者str.data()都可以,但长度用了strlen(str.c_str()),二十字节头,遇"\0"即止...长度应为80的,结果只计为了2...
以后长度用str.length()。
/********************************************************/
被推翻了...
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
std::string str2="songshiqi\0xieao";
printf("%d %d %d\n",str2.length(),str2.size(),strlen(str2.c_str()));
}
网友评论