问答题
编写一个函数fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。
例如,分别输入下面两个字符串:
FirstString--
SecondString
程序输出:
FirstString--SecondString
注意:部分源程序存在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
给定源程序:
#include <stdio.h>
void fun(char p1[],char p2[])
{
}
main()
{ char s1[80],s2[40];
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,j;
for(i=0;p1[i]!="/0";i++);
for(j=0;p2[j]!="/0";j++)
p1[i++]=p2[j];
p1[i]="/0";
}
[解析] 本题用两个循环完成操作,第1个循环的作用是求出第1个字符串的长度,即将i指到第1个字符串的末尾。第2个循环的作用是将第2个字符串的字符连到第1个字符串的末尾。最后在第1个字符串的结尾加上字符串结束标识"/0"。