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

2024-12-25 12:11:47
推荐回答(4个)
回答1:

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

还有楼主要找的是最长的单词,又不是找到ASC||最大的字母,不住楼上的例题,我有点理解不了,寡闻了吧,我!

回答2:

#include
#include

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:wy030@sina.com

回答3:

#include
main()
{char s[100];
int p[10]={0},i,j=1,k=0,max;
int L;
gets(s);
L=strlen(s);
for(i=0;iif(s[i]==' ') {p[j]=i;j=j+1;} // 要用 空格 ' '
max=p[1];
for(i=1;i
for(i=1;iif ( 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:

让我想想,,