问答题 请编写函数fun(),它的功能是:实现两个字符串的连接(不使用库函数strcat()),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串:
FirstString--
SecondString
则程序输出:
FirstString--SecondString
[注意] 部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
[试题源程序]
#include<stdio.h>
#include<conio.h>
void fun(char p1[], char p2[])


main()

char s1[80], s2[40];
clrscr();
printf("Enter s1 and s2:/n");
scanf("%s%s", s1, s2);
printf("s1=%s/n", s1);
printf("s2=%s/n", s2);
printf("Invoke fun(s1, s2):/n");
fun(s1, s2);
printf("After invoking:/n");
printf("%s/n", s1);


【正确答案】void fun(char p1[], char p2[])
{
int i=0, n=0;
char *p=p1, *q=p2;
while(*p)
{
p++;
n++;
}
i=n;
while(*q)
{
p1[i]=*q;
q++;
i++;
}
p1[i]='/0';
}
【答案解析】[解析] 用指针遍历第一个字符串,把指针定位到串尾标志符处;遍历第二个字符串,依次把字符复制到第一个字符串的末尾;最后赋结尾标志符。