1.编写一个程序,将两个给定的字符串连接起来,要求不使用 strcat 或 strncat 函数。
#include <stdio.h>
#include <strings.h>
#include <string.h>
int main(void)
{
char s1[100];
char s2[100];
bzero(s1, 100); // 将数组s1中的100个字节,清零
bzero(s2, 100); // 将数组s2中的100个字节,清零
printf("请输入两个字符串:\n");
//scanf("%s", s1); // 从键盘输入字符串(不含空格,并且不安全),放到s1中
//scanf("%s", s2);
printf("输入第一个字符串s1(少于100个字符):\n");
fgets(s1, 100, stdin); // 从键盘输入字符串(最多不超过100个字节),放到s1中
printf("输入第二个字符串s2(少于100个字符):\n");
fgets(s2, 100, stdin); // 从键盘输入字符串(最多不超过100个字节),放到s2中
printf("s1: %s", s1);
printf("s2: %s", s2);
// strlen(): 获取指定字符串的长度(不含'\0')
char s3[strlen(s1)-1 + strlen(s2) +1];
// 去掉'\n' 加上'\0'
int i;
for(i=0; i<strlen(s1)-1; i++)
{
s3[i] = s1[i];
}
int j;
for(j=0; j<strlen(s2)+1; j++, i++)
{
s3[i] = s2[j];
}
printf("合并后s3: %s", s3);
return 0;
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/63d927f8c7c9b7eb4ed481224195342d.png)