当前位置: 代码迷 >> 综合 >> C的gets和strcat的使用
  详细解决方案

C的gets和strcat的使用

热度:80   发布时间:2024-02-24 18:13:14.0

例子如下:

#include<stdio.h>
#include<string.h> /*strcat头文件*/int main()
{char s1[]="1,2,3,4,5",s2[]="qwer";gets(s1);puts("s1="); #会自动换行puts(s1);strcat(s1,s2);printf("s1的内存大小:%d\n",sizeof(s1));printf("%s\n",s1);return 0;
} 

运行结果: 输入ABC

ABC
s1=
ABC
s1的内存大小:10
ABCqwer

gets会将结束标志回车自动转换为\0,所以原有字符串其实内存大小(sizeof查看一下)是不变的,只是接下来strcat连接时以第一个参数字符串的\0为起点连接的。

可见s1内存大小是10字节,即1,2,3,4,5\0

gets(s1)之后(假设输入的是ABC回车)s1其实变成了ABC\03,4,5\0

连接时是从ABC后的\0开始连接的,所以就成了ABCqwer