题目:在写程序中遇到字符串的长度问题,总结一下出错的地方。
代码:
string s1="123456";
char* s2="123456";
char s3[]="123456";
cout<<s1.length()<<endl;
cout<<sizeof(s1)<<endl;
cout<<sizeof(s2)<<endl;
cout<<sizeof(s3)<<endl;
打印结果为 6(这表示string字符串包含字符的长度)
32(表示string型变量占用32个字节)
4(表示char指针占4个字节)
7(定义为字符数组,输出sizeof值则为7,比第一个多一,是因为字符数组(s2,s3)中以‘\0’结束,而string则不是)
因此在求string变量字符个数时候用s.length()比较合适,而char* s2可以用strlen(s2)(不计\0),char s3[]可以用strlen(s3)(不计\0)和sizeof(s3).