C++中string与‘0‘
C++中string与’\0’
在C中,string以’\0’结尾,那么C++中呢,⽹上有的⼈说有,有的⼈说没有。于是测试了下
#include<iostream>
#include<string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(void)
{
string s("vak");
string s1 = s +'\0';
string s2="abcdef";
cout << s.size()<<' '<< s.length()<<' '<< s << endl;
cout << s1.size()<<' '<<s1.length()<<' '<< s1 << endl;
cout << s2.size()<<' '<<s2.length()<<' '<< s2 << endl;
s2[3]='\0';
cout << s2.size()<<' '<< s2.length()<<' '<< s2 << endl;
return0;c++string类型
}
测试结果如下
这⾥给我的感觉C++中string是不以’\0’结尾的,否则string中包含了’\0’依然会计算在长度内。⽽C遇到这种情况就截断了,只会计算’\0’之前的长度。
但注意,赋值时直接包含’0’,则string只会保留’\0’之前的数据
int main(void)
{
string s3 ="abc\0ef";
cout << s3.size()<<' '<< s3.length()<<' '<< s3 << endl;
return0;
}
测试结果如下
此外,s.size()和s.length()效果⼀样

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