C++标准库中string长度的一点注意。
在string类之间进行复制没有什么问题。
但是要拷贝到内存中时就要注意。一定要在string取出的长度上加1。
如下
char buf[256];
std::string str = "1234567890";
memcpy( buf, str.c_str(), str.length()+1 );
这样才能拷贝到字符串的结束符‘0’。要不就拷贝不到。
string的length函数只计算有效字符的长度。如同C中的strlen函数。
在string类之间进行复制没有什么问题。
但是要拷贝到内存中时就要注意。一定要在string取出的长度上加1。
如下
char buf[256];
std::string str = "1234567890";
memcpy( buf, str.c_str(), str.length()+1 );
这样才能拷贝到字符串的结束符‘0’。要不就拷贝不到。
string的length函数只计算有效字符的长度。如同C中的strlen函数。