#include <stdio.h> void main() { char s1[100],s2[100]; int i,j; gets(s1); gets(s2); i=0; while(s1[i])i++; j=0; while(s2[j]) { s1[++i]=s2[j++]; } s1[j]='\0'; puts(s1); }
时间: 2023-11-27 15:03:41 浏览: 72
这是一个字符串拼接的程序,通过 gets() 函数读取两个字符串 s1 和 s2,然后使用 while 循环和数组下标来将 s2 拼接到 s1 的末尾,并在最后添加字符串结束符 '\0',最后输出拼接后的字符串 s1。
需要注意的是,使用 gets() 函数读取字符串时需要保证输入的字符串长度不超过数组的长度,否则会导致数组越界。此外,void main() 不是标准的函数入口,应该改为 int main()。完整的程序如下:
```c
#include <stdio.h>
int main() {
char s1[100], s2[100];
int i = 0, j = 0;
printf("请输入字符串 s1:");
gets(s1);
printf("请输入字符串 s2:");
gets(s2);
while(s1[i]) {
i++;
}
while(s2[j]) {
s1[i++] = s2[j++];
}
s1[i] = '\0';
printf("拼接后的字符串为:%s\n", s1);
return 0;
}
```
相关问题
请解释#include <stdio.h> #include <string.h> #define M 100 #define N 10 void main() { char s1[M],s2[N]; int i,j; gets(s1); gets(s2); i=strlen(s1); for(j=0;j<=strlen(s2);i++,j++) s1[i]=s2[j]; s1[i]='\0'; puts(s1); }
这是一段 C 语言代码,实现的功能是将两个字符串拼接起来。
首先,代码中使用了两个头文件,分别是<stdio.h>和<string.h>,前者提供了输入输出的函数,后者提供了字符串操作的函数。
然后,定义了两个宏,M 和 N,分别表示字符串的最大长度和第二个字符串的长度。
接下来是主函数main(),其中定义了两个字符数组s1和s2,分别用来存放输入的两个字符串。使用函数gets()获取两个字符串。
接下来使用函数strlen()获取第一个字符串的长度,并将第二个字符串拼接到第一个字符串的末尾。具体实现是使用一个循环,将s2中的字符一个一个复制到s1的末尾。
最后,为s1添加字符串结束符'\0',并使用函数puts()输出拼接后的字符串。
需要注意的是,这段代码使用了过时的函数gets(),在实际使用中可能会存在安全问题,建议使用更安全的函数fgets()代替。同时,主函数应该声明返回值类型为int而不是void。
1. 编一个函数,将字符串s2连接到s1后面,不用strcat函数。(请填空)#include <stdio. h> #include <string. h> void mainO ( char s1[80], s2[40]; int i=0, j=0; gets(s1) ; gets(s2) ; /*查找定位s1的连接点(即结束符) */ 8灵静话/*将s2逐个字符复制到s1后,对应下标后移*/ /*手工对s1加结束符*/ printf( "The new string is:%s” ,s1);
#include <stdio.h>
#include <string.h>
void mystrcat(char s1[], char s2[]) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int i, j;
for (i = len1, j = 0; j < len2; i++, j++) {
s1[i] = s2[j];
}
s1[i] = '\0';
}
int main() {
char s1[80], s2[40];
printf("Enter string s1: ");
gets(s1);
printf("Enter string s2: ");
gets(s2);
mystrcat(s1, s2);
printf("The new string is: %s\n", s1);
return 0;
}
阅读全文