C语言问题 求输出输入字符串中的最长单词?

2025-04-08 19:21:57
推荐回答(2个)
回答1:

#include 
#include 
#include 
int main()
{
  char ch[100];
  int  i,j,len,maxlen,p;
  i=len=maxlen=0;
  printf("\n输入一串字符:");
  gets(ch);//输入字符串,以空格分割单词
  do
  {  j=i;//新单词开始位置
     for(len=0;ch[i]!=' '&&ch[i]!='\0';i++)//计算当前单词的长度
     {
       len++;
     }
     if(len > maxlen)//如果新单词长度大于原来的最大长度
     { 
         maxlen=len;//新单词的长度赋值为最大长度
         p=j;//标记新单词开始的位置
     }
    if(ch[i] != '\0') i++;//i加一
   }while(ch[i]!='\0');
   printf("\n");
   if(len==0)
     printf("\n没有输入单词!");
   else
   {
       for(i=p;i <= p+maxlen;i++)//输出最长的单词
        printf("%c",ch[i]);
       printf("\n");
   }
}

回答2:

怎么记录最长单词呢。
肯定 有2个记录;
1.记录当前的单词,
2.记录已知的最长的单词。
3.1和2比较,记录最长。
很显然,以上3点都没有做到