编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString 函数接口定义: void fun(char p1[], char p2[]) 其中 p1和p2代表2个字符串。 裁判测试程序样例: void fun(char p1[], char p2[]); int main() { char s1[80], s2[40] ; scanf("%s%s", s1, s2) ; fun(s1, s2) ; printf("%s", s1) ; return 0; } /* 请在这里填写答案 */ 输入样例: FirstString-- SecondString 输出样例: FirstString--SecondString
时间: 2024-01-21 13:05:13 浏览: 43
根据题目要求,我们需要实现一个函数 `void fun(char p1[], char p2[])`,其中 `p1` 代表第一个字符串,`p2` 代表第二个字符串。我们需要将第二个字符串连接到第一个字符串的末尾。可以使用循环将第二个字符串中的每个字符逐个复制到第一个字符串的末尾,并在最后加上结束符 '\0'。
具体的实现方法如下所示:
```c
void fun(char p1[], char p2[]) {
int i = 0, j = 0;
// 找到第一个字符串的末尾
while (p1[i] != '\0') {
i++;
}
// 将第二个字符串逐个复制到第一个字符串末尾
while (p2[j] != '\0') {
p1[i++] = p2[j++];
}
// 在第一个字符串末尾添加结束符
p1[i] = '\0';
}
```
接下来,我们可以编写一个测试程序,用来验证函数的正确性:
```c
int main() {
char s1[80], s2[40];
scanf("%s%s", s1, s2);
fun(s1, s2);
printf("%s", s1);
return 0;
}
```
这个程序中,我们首先读取两个字符串,然后调用 `fun` 函数将第二个字符串连接到第一个字符串末尾,最后输出第一个字符串来验证连接的结果。
完整的代码如下所示:
```c
#include <stdio.h>
void fun(char p1[], char p2[]) {
int i = 0, j = 0;
// 找到第一个字符串的末尾
while (p1[i] != '\0') {
i++;
}
// 将第二个字符串逐个复制到第一个字符串末尾
while (p2[j] != '\0') {
p1[i++] = p2[j++];
}
// 在第一个字符串末尾添加结束符
p1[i] = '\0';
}
int main() {
char s1[80], s2[40];
scanf("%s%s", s1, s2);
fun(s1, s2);
printf("%s", s1);
return 0;
}
```