问题
问答题
请编写函数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 pA[], char pB[])
{
int i=0, n=0;
char *p=pA, *q=pB;
while(*p)
{
p++;
n++;
}
i=n;
while(*q)
{
pA[i]=*q;
q++;
i++;
}
pA[i]=’\0’;
}
解析:
用指针遍历第一个字符串,把指针定位到串尾标志符处;遍历第二个字符串,依次把字符复制到第一个字符串的末尾;最后赋结尾标志符。