鱼C论坛

 找回密码
 立即注册
查看: 1676|回复: 8

[技术交流] string类初始化,大佬进!

[复制链接]
发表于 2020-10-19 04:23:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
using namespace std;
                 
int main(void)   
{               
    char arr[20];
    arr[0] = 'h';
    arr[1] = 'e';
    arr[2] = 'l';
    arr[3] = 'l';
    arr[4] = 'o';
    // arr[5] = 0;                                                                                                     
    arr[6] = 'w';
    arr[7] = 'o';
    arr[8] = 'r';
    arr[9] = 'l';
    arr[10] = 'd';
                 
    cout << arr << endl;
    for(int i=0; i<20; i++)
        cout << arr[i];
    return 0;   
}               



7 &#10148; ./a.out                                                                                                           
helloUworld&#65533;&#65533;U
helloUworld&#65533;&#65533;UP&#65533;&#65533;%                                                                                                     7 &#10148; ./a.out                                                                                                           
helloUworld&#65533;&#65533;U
helloUworld&#65533;&#65533;U &#65533;&#65533;8%                                                                                                    7 &#10148; ./a.out                                                                                                           
helloVworld&#65533;?V
helloVworld&#65533;?V&#65533;(C&#65533;%                                                                                                    7 &#10148; ./a.out                                                                                                           
helloVworld^"V
helloVworld^"V`&#65533;&#65533;%                                                                                                     7 &#10148; ./a.out                                                                                                           
helloVworld$V
helloVworld$V&#65533;]qz%                                                                                                     7 &#10148; ./a.out                                                                                                           
helloUworldx&#65533;U
helloUworldx&#65533;UP&p%                                                                                                     7 &#10148; ./a.out                                                                                                           
helloUworldN&#65533;U
helloUworldN&#65533;UpKy&#65533;%                                                                                                    7 &#10148; ./a.out                                                                                                           
helloUworld
           &#65533;U
helloUworld
           &#65533;U0&#65533;&#65533;%                                                                                                      7 &#10148; ./a.out                                                                                                           
helloVworld&#65533;)V
helloVworld&#65533;)V&#65533;&#65533;R&#65533;%                                                                                                    7 &#10148; vim cc.cpp                                                                                                        
7 &#10148;                                                                                                                  



以上。试问哪位大佬能解释下,第二个输出为啥有的会出现           &#65533;U0&#65533;&#65533;%这样的情况(数据被覆盖了???)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-19 04:24:50 | 显示全部楼层
输出不了格式,代码都能看明白,就是第二个循环输出的时候,后面没有初始化的脏数据没毛病,但是连hello也没有输出,只是输出一堆垃圾数据,这是啥情况!懂的人来讲讲!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-19 04:27:54 | 显示全部楼层

                               
登录/注册后可看大图


第二行为啥连hello这几个char也被覆盖了???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-19 04:28:38 | 显示全部楼层
大佬进!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 09:23:37 | 显示全部楼层
因为你的字符串数组没有用0结尾,所以输出一堆乱码。
arr[11] = '\0';或者 arr[11] = 0;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-19 13:21:18 | 显示全部楼层
xieglt 发表于 2020-10-19 09:23
因为你的字符串数组没有用0结尾,所以输出一堆乱码。
arr[11] = '\0';或者 arr[11] = 0;

第二个我也不是出书string啊,是char[]的元素呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 13:38:43 | 显示全部楼层
本帖最后由 xieglt 于 2020-10-19 13:45 编辑

char arr[] 是字符数组没错,也可以称之为字符串。
cout << arr ; 的话必须要0结束符,没有结束符就会输出一堆未知数据,直到遇到0为止。
cout <<arr[i] ;这样输出没有问题,不需要0结束。
而且你这个帖子文不对题,代码是 char arr[],题目是string 类
string str = "Hello,world";
cout << str.c_str();
你的问题很多都是基本概念,多看书比在这发帖求助强。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 2

使用道具 举报

发表于 2020-10-19 14:43:47 | 显示全部楼层

兄弟,有时间发这些,去将那些没有结帖的帖子结了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-19 15:40:01 | 显示全部楼层
xieglt 发表于 2020-10-19 13:38
char arr[] 是字符数组没错,也可以称之为字符串。
cout

反对+没有帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 21:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表