xcxd.net
当前位置:首页 >> C语言中字符数组输出"烫烫烫烫烫烫烫",如何解决 >>

C语言中字符数组输出"烫烫烫烫烫烫烫",如何解决

出现“烫”的原因是由于字符数组中的某些数组元素没赋值。 具体原因可以通过如下实例来进行说明: char a[10];a[0] = 'a';a[1] = 'b';a[2] = 'c';a[3] = 'd';printf("%s", a); // 输出结果就会出现很多“烫”,因为只对数组a中前四个元素进行了赋值...

因为你定义的字符型数组是20个字节,但是你在输入赋值时,没有将其全部赋值,但是输出是却又要输出20个,那些没有赋值的当然就乱码了。

用for循环一个一个输出数组a的内容。 输出时,判断a[i]是否等于空,不等于空,则输出,等于空,则不输出。

是把字符数组当字符串输出了,由于最后没有'\0'所导致。

字符串后面缺少必要的'\0',将后面没有初始化的内容输出出来了,前面定义时可以这样改一下看看: char str[100] = {0};

溢出了溢出了。输出"烫烫烫烫"是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC。而你定义的字符数组空间不够,所以就占用了那部分不属于你的空间,因为cout输出char*是要遇到空字符才停止的,所以便把那些垃圾都打出来了。 这是我...

copy函数没有给s2最后加上串结束符'\0', 在while循环之后加一行 *s2='\0'; 或者把while循环改成do ... while(*s1 != '\0'), 确保把结束符也复制给s2

t数组中的字符串 没有'\0'标记 就你的 程序而言 可以 在声明t数组时 使用char t[100]={0};这样的形式 初始化一下 就不会出现问题了

这是你定义的字符串没有初始化为0,当输出的时候编译器找到不到字符串结束符。就会出现这样的乱码。你可以将你的结构体中定义的字符数组都初始化为0.或者直接用memset()把结构体定义的变量初始化为0试一下。你的程序没有具体看,不过应该就是...

网站首页 | 网站地图
All rights reserved Powered by www.xcxd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com