输出出现乱码就是因为字符串结尾并没有结尾符'\0'。gets函数读入一行字符串时,会在最末尾自动加上'\0'结尾。但是你在for循环内将s2的字符一个个拷贝到s中的时候,循环限定条件只到了s2字符串的'\0'结尾符之前,所以输出乱码了。将循环条件k<a+b改为k<a+b+1或者k<=a+b就可以将s2字符串最...
int main(){ char a[20], b[20], c[40],*p,*q,*r;r=c;scanf("%s",a);scanf("%s",b);for(p=a;*p!='\0';p++,r++)r=*p;for(q=b;*q!='\0';q++,r++)r=*q;r='\0';printf("%s",c);} 加一行*r='\0';就好了 ...
最佳答案 C语言字符串以'\0'结尾,如果不以该符号结尾则输出%s时会出错,程序一直往存放字符串的地址访问。而你的程序中并没有赋'\0'给那两个数组,所以会出现乱码。没有出现乱码的数组是因为你初始化了,初始化时编译器会给它加上'\0'符号。 2021-01-09 8 更多回答(5)© 2024 SOGOU.COM...
写一个函数,输入一行字符,将此字符串中最长的单词输出。为啥我的结果出现了乱码?怎么修改呀 惠大队长 酱油 4 才看了一眼,那个longgest应该定义在main外, 孤人海 大能力者 8 你这算法是错的,你要最长单词,应该以空格为间隔,找最长单词 BUG 小吧主 14 从0到空格有多少字符一个一个比 课代表 ...
你用int 型数组存储有什么意图吗?如果没有你应该用char数组存储啊