www.fltk.net > C语言,字符串,最后面为什么会有一个"烫"字。

C语言,字符串,最后面为什么会有一个"烫"字。

因为你的字符串数组错误的引用了存在脏数据的内存 要避免,就要初始化数组 memset(str,0,n) 将str字符串中前n个字节替换为0并返回str;str为你定义的字符串,n为字符串容量,并非长度,即char a[20],不管你有几个字符,n为20为佳 加上头文件string.h 消息来源华夏联盟,亲

for(;*s!='\0';s++) *s=*s;-->为什么一定要有这一句?不是非要这句,而是要上面一句for(;*s!='\0';s++);这是将本函数中s的地址移到源s(主函数中)的末尾(是结束符的地方).这样才能在后面拼接t.没有*s=*s只要有分号就可以.

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

输出"烫烫烫烫"是因为vc会自动把未用函数的局部变量空间按字节全部初始化为CC,(打个比方,你定义一个10个元素的char数组,结果你初始化了2个元素,后面没初始化,没赋值,没有使用,就变CC了).CC CCH在Unicode的编码中就是表示中文的“烫”,所以就是很多“烫”字.

char name[10aaaa]; 这个错误了,太大了,是不是笔误.可能导致访问地址溢出,然后就容易出乱码 烫..

可能是电脑温度太高了,建议你关机重启一下

for(i=0;i<20;i++) {printf("%c",a[i]);} “烫”是你的这一句输出的,键盘输入的字符串字符数少于20个,比如:abcdefg 这一句输出:abcdefg 烫烫烫烫烫烫 共20个字符:7(abcdefg)+1(空格)+6(烫)*2=20 一个中文“烫”是2个字符

/* 输入一个正整数,按逆序输出该数*/ main() { int n; scanf("%d",&n); while(n) { printf("%3d",n%10); n=n/10; } }

s2中的'\0'并没有赋值到s1中.其中i与j分别是s1与s2的字符个数,n<i+j则0~n的个数正好是两个字符串相加的长度,并不会将'\0'存入s1中,在最初的s1中的'\0'被s2存进去的字符覆盖后,s1中就不会有'\0'这个字符了.可以将这部分代码for(i=0;

字符串没有初始化,建议楼主用定义字符串如下例两种方法1.char sz[32] = {0};//初始化数组为02.使用函数memset(sz,0,sizeof(sz));//讲数组里面的数全部置0

相关搜索:

网站地图

All rights reserved Powered by www.fltk.net

copyright ©right 2010-2021。
www.fltk.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com