问题
填空题
以下程序从输入的10个字符串中找出最长的那个串,请填空。
#include <stdio.h>
#include <string.h>
#define N 10
main()
char str[N][81],*sp;
int i;
for(i=0;i<N;i++)gets(str[i]);
sp=str[0];
for(i=1;i<N;i++)
if(strlen(sp)<strlen(str[i]))
【18】 ;
printf("输出最长的那个串:\n%s\n",sp);
printf("输出最长的那个串的长度:%d\n",strlen(sp));
答案
参考答案:sp=str[i]
解析: 二维字符数组即数组的每个元素又是一个字符串,即字符串数组。题中二维数组的第一行的首地址赋给字符指针sp,使sp指向了二维字符数组的一个字符串。求字符串长度函数strlen比较当前字符串与数组的下一个元素的字符串的长度,如果当前字符串的长度小于下一个元素的,则指针sp又指向了下一个元素,直到比较到数组的最后一个元素,得到的sp指针所指向的字符串即为长度最长的字符串。