求大家帮忙算一下,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/24 13:28:40
#include <stdio.h>#include <string.h> main(){char ss[10]="1,2,3,4,5";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}答案是什么?怎么算的。请说详细些,谢谢。

因为gets(ss)是让你自己输入一个字符串赋给ss,所以结果是与你的输入有关的,比如你输入123,结果就是1236789
你输入 China,结果就是China6789

char ss[10]="1,2,3,4,5";
gets(ss);

这两句貌似我有点看不懂

如果你是想把]="1,2,3,4,5"和,"6789"两个字符串接起来的话,貌似gets(ss);就多余了

如果注释掉gets(ss);这句的话

打印结果是:1,2,3,4,56789

原因是printf打印%s时是以'\0'判断字符串结束的
虽然定义的ss[10],但这里超出去了。 由于你的程序比较简单,好像还看不出超出去的影响;但要是在大工程里,这样可能就会覆盖到其他变量的空间了。

附:
strcat 原型:extern char *strcat(char *dest,char *src);
用法:#include <string.h>
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。