用C语言编一段程序,写一函数,输入一行字符,将此字符串中最长的单词输出。

如题所述

第1个回答  2011-05-16
楼上的何必不指出思路啊!
分析:首先输入的是一行字符吧,而要找出最长的单词,首先要做的就是统计出每个单词吧,统计单词可以根据空格来判断是否为一个单词,当不是空格时,变量累加(这个就是单词的长度啊),储存起来,开始下一个单词的统计!最后把每个单词的长度作比较,求出最大的一个就行了,在把这个长度的单词弄出来!
在编程之前,首先明确目标,理清思路,从上往下把需要的都写出来,这样长期的积累就能写出好程序了,祝愿楼主学有所成!
PS:仅代表个人观点,如有错误,谢谢指出!

还有楼主要找的是最长的单词,又不是找到ASC||最大的字母,不住楼上的例题,我有点理解不了,寡闻了吧,我!
第2个回答  2010-12-28
#include <stdio.h>
#include <string.h>

char *FindLongWord(char *szInBuff)
{
static char szLongWord[1024] = {0};
char *lpstr;
const char *delim = ",.?;'\"<>{!}[]\n ";

lpstr = strtok(szInBuff, delim);
sprintf(szLongWord, "%s", lpstr);
while((lpstr = strtok(NULL, delim)) != NULL)
{
if (strlen(lpstr) > strlen(szLongWord))
{
sprintf(szLongWord, "%s", lpstr);
}
lpstr = strtok(NULL, delim);
}
return szLongWord;
}
int main()
{
char szInBuff[1024] = {0};
char *lpszBestLongWord = NULL;

printf("输入一行英文句子,以回车结束:");
gets(szInBuff);
szInBuff[strlen(szInBuff)] = ' ';
lpszBestLongWord = FindLongWord(szInBuff);
printf("%s\n", lpszBestLongWord);
return 0;
}

不明白的加我msn:[email protected]本回答被提问者和网友采纳
第3个回答  2010-12-28
#include <stdio.h>
main()
{char s[100];
int p[10]={0},i,j=1,k=0,max;
int L;
gets(s);
L=strlen(s);
for(i=0;i<L;i++)
if(s[i]==' ') {p[j]=i;j=j+1;} // 要用 空格 ' '
max=p[1];
for(i=1;i<j;i++) printf("%d ",p[i]); printf("\n");

for(i=1;i<j;i++)
if ( max< (p[i]-p[i-1]))
{max=(p[i]-p[i-1]);k=i;}

for(i=p[k-1];i<=p[k];i++)
printf("%c",s[i]);
getch();
}

输入行的最后 要有一个空白 才行,例如
123 444 ggggg
ggggg 后 要有一个空白 才行
第4个回答  2010-12-28
让我想想,,
相似回答