川建军 发表于 2020-10-19 04:23:02

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��%这样的情况(数据被覆盖了???)

川建军 发表于 2020-10-19 04:24:50

输出不了格式,代码都能看明白,就是第二个循环输出的时候,后面没有初始化的脏数据没毛病,但是连hello也没有输出,只是输出一堆垃圾数据,这是啥情况!懂的人来讲讲!

川建军 发表于 2020-10-19 04:27:54

https://i.imgur.com/jdp0GBk.png

第二行为啥连hello这几个char也被覆盖了???

川建军 发表于 2020-10-19 04:28:38

大佬进!

xieglt 发表于 2020-10-19 09:23:37

因为你的字符串数组没有用0结尾,所以输出一堆乱码。
arr = '\0';或者 arr = 0;

川建军 发表于 2020-10-19 13:21:18

xieglt 发表于 2020-10-19 09:23
因为你的字符串数组没有用0结尾,所以输出一堆乱码。
arr = '\0';或者 arr = 0;

第二个我也不是出书string啊,是char[]的元素呢

xieglt 发表于 2020-10-19 13:38:43

本帖最后由 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();
你的问题很多都是基本概念,多看书比在这发帖求助强。

风过无痕1989 发表于 2020-10-19 14:43:47

川建军 发表于 2020-10-19 04:28
大佬进!

兄弟,有时间发这些,去将那些没有结帖的帖子结了吧

川建军 发表于 2020-10-19 15:40:01

xieglt 发表于 2020-10-19 13:38
char arr[] 是字符数组没错,也可以称之为字符串。
cout

反对+没有帮助
页: [1]
查看完整版本: string类初始化,大佬进!