C++string 类型结尾是否以'\0'结尾
来源:互联网 发布:知乎 日本留学 编辑:程序博客网 时间:2024/06/08 10:34
今天在带大一学生C++上机时,涉及到一个string类型的字符串是否以\0结尾的问题,本来我很坚定string类型结尾并没有\0,C风格的字符数组才会那样。但是程序运行结果却说明string类型的字符串后面确实有\0。
于是回实验室后自己又实验了下,才发现这和编译器有关,真坑爹。
对于如下一段测试程序,在C-free 5.0和g++ 4.1上输出yes,而在VS2010上执行时报错!
- #include<iostream>
- #include<string>
- using namespace std;
- int main()
- {
- string str="x";
- if(str[1]=='\0')
- cout<<"yes";
- else
- cout<<"no";
- return 0;
- }
当把上面代码中str[1]改成str[2]时,VS2010依然报错,但C-free 5.0输出了no,而g++ 4.1还是输出yes
另外,在网上查资料时发现:
全局的std::getline返回std::string,这个不一定是'\0'结尾。有的编译器会加,有的编译器不会加。但是,注意:新的C++标准C++11里面规定std::string一定是以'\0'结尾,就看你的编译器有没有实现新标准了。
istream::getline返回c字符数组,这个一定是'\0'结尾。
0 0
- C++string 类型结尾是否以'\0'结尾
- C++ String以0结尾
- 关于string类型的字符串是否以\0结尾
- 关于string类型的字符串是否以\0结尾
- 关于string类型的字符串是否以\0结尾
- 关于string类型的字符串是否以\0结尾
- 关于C++中String串是否以'\0'结尾
- string变量是不是以\0结尾
- 以***结尾
- 验证snprintf是否以null结尾
- 判断文件是否有以.docx结尾
- 42、判断是否以元音字母结尾
- 判断是否以元音字母结尾
- C 的 "%s"对应以'\0'结尾的字符串
- C 的 "%s"对应以'\0'结尾的字符串
- 探究string结尾有木有'\0'
- 结尾
- 以0为结尾的个数
- C++ 之 运算符重载
- 二分图匹配
- Android 手势滑动事件判断
- 网站用户体验的76个体验点
- HUDJ 3270 The Diophantine Equation
- C++string 类型结尾是否以'\0'结尾
- 7.使用JAVA程序连接至MySQL数据库
- keytool创建签名
- soapui断言和变量
- poj_2187凸包,暴力解法
- UIAlertView使用
- Android 自定义控件开发入门 (三)
- 矢量化编程——以MNIST为例
- OpenCV中的cvWaitKey()