c++ string 注意事项

#include<string>
#include <iostream>
using namespace std;

int main()
{
    string str({ 65,'B','\0','D','E' });
    string str1({ 97,'b','c','\0','e','f' });
    char str2[] = { '1','2','\0','3','4' };
    cout << str + str2 + str1 << ", 长度:" << (str + str2 + str1).length() << "\n";
    string str3 = (str + str2 + str1).c_str();
    cout << str3 << ", 长度:" << str3.length() << "\n";
}

运行结果:

AB DE12abc ef, 长度:13
AB, 长度:2
注意:

string 类的 变量中可以含有 '\0',因为该变量的 length() 即 长度,不是以 '\0' 为结尾,判断该变量的长度的。
只有 C 语言类型的字符串结构,才以 '\0' 为结束,比如:char* 或 char[] 定义的字符数组。

推荐阅读更多精彩内容

  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 1,312评论 0 7
  • 标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的...
    杰伦哎呦哎呦阅读 530评论 0 8
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 1,893评论 0 3
  • 【转载】原文地址:std::string详解作者:kieven2008 之所以抛弃char*的字符串而选用C++标...
    VAYY阅读 253评论 0 2
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 6,122评论 0 9