为什么在初始化字符串后分配零终止会被忽略?

问题描述

我遇到了两种不同的情况,但无法得出内部实际发生的情况的结论。谁能解释一下?

案例 1:

#include<iostream>
using namespace std;
int main() {
string my_string = "This is a sam\0ple text"; //check the \0
cout << my_string;
return 0;
}

输出

This is a sam

情况 2:

#include<iostream>
using namespace std;
int main() {
string my_string = "This is a sample text"; 
my_string[13]='\0';
cout << my_string;
return 0;
}

输出

This is a sam le text

我认为这两种情况是相似的,因此输出应该是相同的,但实际上这就是正在发生的事情。请解释。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)