string类初始化,大佬进!
#include <iostream>using namespace std;
int main(void)
{
char arr;
arr = 'h';
arr = 'e';
arr = 'l';
arr = 'l';
arr = 'o';
// arr = 0;
arr = 'w';
arr = 'o';
arr = 'r';
arr = 'l';
arr = 'd';
cout << arr << endl;
for(int i=0; i<20; i++)
cout << arr;
return 0;
}
7 ➤ ./a.out
helloUworld��U
helloUworld��UP��% 7 ➤ ./a.out
helloUworld��U
helloUworld��U ��8% 7 ➤ ./a.out
helloVworld�?V
helloVworld�?V�(C�% 7 ➤ ./a.out
helloVworld^"V
helloVworld^"V`��% 7 ➤ ./a.out
helloVworld$V
helloVworld$V�]qz% 7 ➤ ./a.out
helloUworldx�U
helloUworldx�UP&p% 7 ➤ ./a.out
helloUworldN�U
helloUworldN�UpKy�% 7 ➤ ./a.out
helloUworld
�U
helloUworld
�U0��% 7 ➤ ./a.out
helloVworld�)V
helloVworld�)V��R�% 7 ➤ vim cc.cpp
7 ➤
以上。试问哪位大佬能解释下,第二个输出为啥有的会出现 �U0��%这样的情况(数据被覆盖了???) 输出不了格式,代码都能看明白,就是第二个循环输出的时候,后面没有初始化的脏数据没毛病,但是连hello也没有输出,只是输出一堆垃圾数据,这是啥情况!懂的人来讲讲! https://i.imgur.com/jdp0GBk.png
第二行为啥连hello这几个char也被覆盖了??? 大佬进! 因为你的字符串数组没有用0结尾,所以输出一堆乱码。
arr = '\0';或者 arr = 0; xieglt 发表于 2020-10-19 09:23
因为你的字符串数组没有用0结尾,所以输出一堆乱码。
arr = '\0';或者 arr = 0;
第二个我也不是出书string啊,是char[]的元素呢 本帖最后由 xieglt 于 2020-10-19 13:45 编辑
char arr[] 是字符数组没错,也可以称之为字符串。
cout << arr ; 的话必须要0结束符,没有结束符就会输出一堆未知数据,直到遇到0为止。
cout <<arr ;这样输出没有问题,不需要0结束。
而且你这个帖子文不对题,代码是 char arr[],题目是string 类
string str = "Hello,world";
cout << str.c_str();
你的问题很多都是基本概念,多看书比在这发帖求助强。
川建军 发表于 2020-10-19 04:28
大佬进!
兄弟,有时间发这些,去将那些没有结帖的帖子结了吧 xieglt 发表于 2020-10-19 13:38
char arr[] 是字符数组没错,也可以称之为字符串。
cout
反对+没有帮助
页:
[1]