请编写函数fun(),该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按J顷序合并组成一个新的字符串。 例如,若字符串数组中的M个字符串为 AAAA BBBBBBB CC 则合并后的字符串内容应该是AAAABBBBBBBCC 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include <conio. h> #define M 3 #define N 20 void fun (char a [M] [N], char *b) { } main ( ) { char w [M] [N] ={"AAAA", "BBBBBBB", "CC"}, i; char a[100]={" ####################"}; 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’; /*在字符串最后加上结束标志符*/ } 本程序中for(i=0;i<M;i++)循环的作用是用于对二维数组行的控制,第2个循环的作用是从同一行中取出字符并存放到一维数组b中,语句是b[k++]=a[i][j];。