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

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

有烫烫烫烫烫烫烫 说明你的字符数组其内容不明 一般需如下解决:扩大数组范围 或初始化数组

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

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

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

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

缓冲区越界了,把s和a数组的缓冲区设置大一点就好了,一定要保证数组缓冲区大小比输入的字符串长度要大啊 #include #include #include main() { char i,s[100]={0},a[100]={0};//

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

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

for(j=0;jj;k--) 问题在这里 字符串比较结束后会比较后面的cc 这是个负数 你的冒泡是由小到大 会把cc提到前面

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

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