【发布时间】:2021-11-13 08:49:00
【问题描述】:
我正在学习 c++,我编写了一些代码来将字符串转换为大写并显示它。我用“asdf”分配一个字符串str,然后创建一个char数组指针并分配一个与字符串相同的长度。
但是当我尝试显示 char 数组时,我用大写字符分配 char 数组的索引后,末尾附加了许多垃圾字符。为什么会发生这种情况,因为我只分配了 size = "length of string" 的 char 数组,那么即使在实际分配的大小之后,char 数组最后如何有垃圾字符。
string str{ "asdf" };
char* str_c = new char[str.length()];
for (int i = 0; i < str.length(); i++) {
str_c[i] = toupper(str[i]);
}
cout << str_c; // displays ASDF²▌r┐│w²A∙
【问题讨论】: