本例中由于定义数组长度为15, 因此输入的字符串长度必须小于15,以留出一个字节用于存放字符串结束标志`/0`。 应该说明的是,对一个字符数组,假如不作初始化赋值,则必须说明数组长度。还应该非凡注重的是,当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。例如运行例4.8,当输入的字符串中含有空格时,运行情况为: input string:this is a book this 从输出结果可以看出空格以后的字符都未能输出。 为了避免这种情况, 可多设几个字符数组分段存放含空格的串。程序可改写如下:
#include"string.h" main() { static char st1[30]="My name is "; int st2[10]; printf("input your name:/n"); gets(st2); strcat(st1,st2); puts(st1); } static char st1[30]="My name is "; int st2[10]; printf("input your name:/n"); gets(st2); strcat(st1,st2);