使用C语言编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString 函数接口定义: void fun(char p1[], char p2[]) 其中 p1和p2代表2个字符串。
时间: 2024-03-10 17:49:45 浏览: 168
好的,下面是实现功能的代码:
```c
void fun(char p1[], char p2[]) {
int i = 0, j = 0;
// 找到p1字符串的末尾
while (p1[i] != '\0') {
i++;
}
// 将p2字符串连接到p1字符串的末尾
while (p2[j] != '\0') {
p1[i] = p2[j];
i++;
j++;
}
// 添加p1字符串的结束符
p1[i] = '\0';
}
```
在主函数中可以这样调用:
```c
int main() {
char s1[100] = "FirstString";
char s2[100] = "SecondString";
fun(s1, s2);
printf("%s\n", s1); // 输出 "FirstString--SecondString"
return 0;
}
```
这样就可以实现两个字符串的连接了,同时避免使用库函数 `strcat`。
相关问题
用C语言编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString
好的,根据你的要求,我来编写一个函数 `fun`,实现两个字符串的连接。以下是代码实现:
```c
#include <stdio.h>
void fun(char *p1, char *p2)
{
while (*p1 != '\0') {
++p1;
}
while (*p2 != '\0') {
*p1++ = *p2++;
}
*p1 = '\0';
}
int main()
{
char str1[100] = "FirstString";
char str2[] = "SecondString";
fun(str1, str2);
printf("%s\n", str1);
return 0;
}
```
在上面的代码中,我们定义了一个名为 `fun` 的函数,它接受两个参数 `p1` 和 `p2`,分别表示要连接的两个字符串的起始地址。函数会将 `p2` 所指的字符串连接到 `p1` 所指的字符串的后面。
在 `fun` 函数的实现中,我们首先使用一个循环将指针 `p1` 移动到字符串末尾的位置。然后,我们使用另一个循环将指针 `p2` 所指的字符串中的字符逐个复制到 `p1` 所指的字符串的末尾。最后,我们在 `p1` 所指的字符串的末尾添加一个空字符,表示字符串的结束。
在上面的示例程序中,我们使用 `fun` 函数将两个字符串连接起来,并输出连接后的结果。可以看到,程序输出了连接后的字符串。
用c语言编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString
好的,下面是实现函数fun的C代码:
```c
void fun(char *p1, char *p2)
{
while (*p1 != '\0') { // 找到p1的末尾
p1++;
}
while (*p2 != '\0') { // 将p2复制到p1的末尾
*p1 = *p2;
p1++;
p2++;
}
*p1 = '\0'; // 加上字符串结束标志
}
```
调用函数fun的方法如下:
```c
int main()
{
char str1[100] = "FirstString";
char str2[] = "SecondString";
fun(str1, str2);
printf("%s", str1);
return 0;
}
```
输出结果为:
```
FirstString--SecondString
```
注意,在调用函数fun之前,需要先定义好两个字符串,并且第一个字符串的数组大小要足够大,能够容纳下两个字符串连接后的结果。
阅读全文