首页 > 解决方案 > c ++使用char数组创建字符串

问题描述

目前正在学习字符串,我有以下情况:

string s;
s[0]='a'; s[1]='b';
cout<<s;

string s; s.clear();
s+='a'; s+='b';
cout<<s;

我得到空字符串作为第一个示例的输出,第二个工作正常。我知道第一个是 undef 行为,我们第二次“推送”一个元素而不是分配一个值。任何更多的澄清将不胜感激。

标签: c++arraysstringchar

解决方案


运算符[]返回对pos字符串中位置字符的引用,它读取 value 而不是 insert 和 resize std::string

你不能插入到分配值,这就是你得到undefined behaviour. 首先调整字符串大小,然后尝试使用[]运算符插入。


推荐阅读