问答题 编写fun,其功能是:实现两个字符串的连接(不要使用库函数strcat)。例如,分别输入下面两个字符串:welcome to beijing程序运行后的输出结果是:welcome to beijing注意:部分源程序文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#include<stdio.h>void fun(char pl[],char p2[]){}main()char s1[80],s2[40];void File Opr();{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);File Opr();}void File Opr();{/+本函数用于打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。*/int i;FILE*rf。*wf;char s1[80],s2[40];rf=fopen(''in.dat'',''r'');wf=fopen(''out.dat'',''w'');for(i=0;i<10;i++)fscanf(rf,''%s'',s1);fscanf(rf,''%s'',s2);fun(s1,s2);fprinTf(wf,''%s\n'',s1);fclose(rf);fclose(wf);}
【正确答案】正确答案: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'。