请补充main函数,改函数的功能是,把一个二维字符数组每行字符串最大的字符拷贝到字符数组s中。 例如,如果str[3]={"efjh","cfimls","owys"},则s;"hsy"。 注意:部分源程序给出如下. 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序: #inc lude<stdio, h> main() { int i=0; char *str [3] ={ "efjh", "efknls", "owys" }; char **p; char s [8]; clrscr 0; 【1】; for (i=O; i<3; i++) { s [i] =*p [i]; while (*p [i] ) { if (S [i] <*p [i] ) s [i] =*p[i]; 【2】; } } 【3】; printf(" new string \n"); puts (s); }
参考答案:[1] p=str [2]p[i]++ [3]s[i]=’\0’
解析: 填空1:sb是一个大小为3的指针数组,每个指针指向一个字符串,p是指向指针的指针,首先要使指针p指向数组sb的首地址。填空2:通过p[i]++使p[i]指向第i个字符串的下一个字符。填空3:将每行字符串的最大字符都拷贝到字符数组s中后,不要忘了在数组s最后加上字符串结束标记符‘\0’。