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