string赋值问题
字符串函数gets怎么重新定义+=、append和assign之间对字符串操作需要注意的问题,先看如下代码:
char* ch_str = "ab\0cd";
std::string str1;
str1 += ch_str;
std::string str2;
str2.assign(ch_str);
std::string str3;
str3.append(ch_str);
std::cout << str1.length() << endl;
std::cout << str2.length() << endl;
std::cout << str3.length() << endl;
以上代码执⾏结果为:
在通过字符数组对字符串进⾏赋值的时候,如果没有指定字符串长度,系统⾃动截取第⼀个’\0’字符作为字符串的值,此时字符容器string对字符值不透明,关⼼字符数据。
以下代码:
char* ch_str = "ab\0cd";
std::string str1;
str1 += ch_str;
std::string str2;
str2.assign(ch_str, 5);
std::string str3;
str3.append(ch_str, 5);
std::cout << str1.length() << endl;
std::cout << str2.length() << endl;
std::cout << str3.length() << endl;
以上函数执⾏结果为:
以上为个⼈愚见,欢迎指正。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。