更改字符串中的字符时,为什么没有输出?

时间:2019-09-22 16:19:39

标签: c++ c++14

/app/public/cars/music/song.mp3

我在代码中声明一个字符串,然后使用数组索引分配字符值。当我打印字符串时,它没有输出。我的问题是为什么呢?

没有给出输出的原因是什么?

1 个答案:

答案 0 :(得分:4)

您要尝试的操作有undefined behavior

string s;默认初始化(大小为零),然后访问不存在的元素。

要解决此问题,您只需使用string s = "ab";

std::string s;
s.push_back('b');
s.push_back('a');

或建议使用@ bindsniper001(但是您不能以这种方式添加字符串的长度):

std::string s2(2, ' ');
s2[0] = 'c';
s2[1] = 'd';

godbolt上直播