写一个C语言程序,从键盘输入两个字符串存放在字符数组s1和s2中,数组s1和s2大小均为40。把s1和s2连接在一起构成一个字符串存放在字符数组s3中,最后输出s3。不要使用strcat和strcpy函数。用函数gets输入字符串,用函数puts输出字符串。
时间: 2023-06-02 10:08:04 浏览: 139
好的,我可以帮您解决这个问题。以下是程序代码:
```
#include <stdio.h>
void mystrcat(char s1[], char s2[], char s3[]) {
int i, j;
for (i = 0; s1[i] != '\0'; i++) {
s3[i] = s1[i];
}
for (j = 0; s2[j] != '\0'; j++) {
s3[i+j] = s2[j];
}
s3[i+j] = '\0';
}
int main() {
char s1[40], s2[40], s3[80];
printf("请输入第一个字符串s1:");
gets(s1);
printf("请输入第二个字符串s2:");
gets(s2);
mystrcat(s1, s2, s3);
printf("连接后的字符串s3为:");
puts(s3);
return 0;
}
```
通过自己实现一个mystrcat函数来实现字符串的拼接,该函数接受三个参数:两个源字符串s1和s2和一个目标字符串s3,将s1和s2中的字符依次复制到s3中,最后在s3末尾添加上字符串结束标志'\0'。
在主函数中,首先使用gets函数从键盘输入两个字符串s1和s2,然后调用自己编写的mystrcat函数将两个字符串连接起来存放在s3中,并最后使用puts函数输出字符串s3。
希望这个程序对您有所帮助!
相关问题
写一个C语言程序,从键盘输入两个字符串存放在字符数组s1和s2中,数组s1和s2大小均为40。把s1和s2连接在一起构成一个字符串存放在字符数组s3中,最后输出s3。不要使用strcat和strcpy函数。
好的,这是一个编程问题,我可以帮你解答。以下是一个示例程序:
```c
#include <stdio.h>
int main() {
char s1[41], s2[41], s3[81];
int i, j;
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
// 将s1复制到s3
for (i = 0; s1[i] != '\0'; i++) {
s3[i] = s1[i];
}
// 将s2复制到s3
for (j = 0; s2[j] != '\0'; j++) {
s3[i + j] = s2[j];
}
// 添加字符串结尾符号
s3[i + j] = '\0';
printf("连接后的字符串s3为:%s\n", s3);
return 0;
}
```
这个程序会先从键盘读取两个字符串,然后将它们连接在一起存储到另一个字符数组s3中,最后输出s3。请注意,程序中没有使用strcat和strcpy函数。
c语言写从键盘输入两个字符串s1和s2,以及一个整数n,用s2的前n个字符替换s1的前n个字符。
下面是一种可能的C语言代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char s1[100], s2[100];
int n;
// 读取输入的字符串和整数
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
printf("请输入整数n:");
scanf("%d", &n);
// 替换s1的前n个字符
strncpy(s1, s2, n);
// 输出替换后的结果
printf("替换后的字符串s1为:%s\n", s1);
return 0;
}
```
在上述代码中,我们使用了`scanf`函数来读取从键盘输入的字符串和整数。然后,使用`strncpy`函数来将s2的前n个字符复制到s1的前n个字符位置上,完成字符串的替换。最后,使用`printf`函数来输出替换后的结果。