问答题 请编写函数fun,其功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。 例如,若字符串数组中的M个字符串为{“AAAA”,“BBBBBBB”,“CC”},则合并后的字符串内容应该是“AAAABBBBBBBCC”。 注意:部分源程序给出如下。 请勿改动主函数maln和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 试题程序:#include < stdio.h >#include < conio.h >#de fine M 3#define N 20void fun (char a[M][N],char *b){}void main(){ char W[M][N]={"AAAA","BBBBBBB","CC"); char a[100]:{"#################"); int i; printf("The string:/n"); for(i=0;i < M;i++) puts(w[i]); printf("/n"); fun(w,a); printf("The A string:/n"); printf("%s",a); printf("/n/n"); }
【正确答案】正确答案:void fun (char a[M] [N],char *b) { int i,j,k=0; for(i=0;i < M;i++)/* 将字符串数组中的M个字符串,按顺序存入一个新的字符串*/ for(j =0;a[i][j]!='/0';j++) b[k++]=a[i][j]; b[k]='/0'; /*在字符串最后加上字符串结束标记符*/ }
【答案解析】解析:本题考查:字符串连接操作。本程序中第1个for循环的作用是对二维数组行的控制,第2个循环的作用是从同一行中取出字符并存放到一维数组b中,语句是b[k++]=a[i][j];。