填空题
请补充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;
{{U}}【1】{{/U}};
for (i=O; i<3; i++)
{
s [i] =*p [i];
while (*p [i] )
{
if (S [i] <*p [i] )
s [i] =*p[i];
{{U}}【2】{{/U}};
}
}
{{U}}【3】{{/U}};
printf(" new string /n");
puts (s);
}
【正确答案】
1、[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’。