#include<stdio.h>
#include<string.h>
int main()
{
int alphabetic(char);
int longest(char[]);
int i;
char line[100];
gets(line);
printf("The Longest word is: ");
for(i=longest(line);alphabetic(line[i]);i++)
printf("%c",line[i]);
printf("\n");
return 0;
}
int alphabetic(char c)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
return(1);
else
return(0);
}
int longest(char string[])
{
int len=0,i,length=0,flag=1,place=0,point;
for(i=0;i<=strlen(string);i++)
if(alphabetic(string[i]))
if(flag)
{
point=i;
flag=0;
}
else
len++;
else
{
flag=1;
if(len>=length)
{
length=len;
place=point;
len=0;
}
}
return(place);
}
C语言输出最长的单词
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- qzjhjxj 2022-12-25 21:28关注
修改如下,供参考:
#include<stdio.h> #include<string.h> int main() { int alphabetic(char); int longest(char[]); int i,j,k=0,maxlen,length=0,flag=1,place=0,point; char line[100]; gets(line); maxlen = longest(line); printf("The Longest word is: "); for(j=0;line[j];j++) { if(alphabetic(line[j])){ if(flag) { point=j; flag=0; } length++; } else { flag=1; if(maxlen == length) { if (k++) printf(" "); for(i=point;alphabetic(line[i]);i++) printf("%c",line[i]); } length=0; } } if(maxlen == length) { if (k++) printf(" "); for(i=point;alphabetic(line[i]);i++) printf("%c",line[i]); } printf("\n"); return 0; } int alphabetic(char c) { if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return(1); else return(0); } int longest(char str[]) { int len=0,i=0,length=0,flag=1,place=0,point; for(i=0;str[i];i++) { if(alphabetic(str[i])) { if(flag) flag=0; len++; } else { flag=1; if(len > length) length=len; len=0; } } if (len > length) length=len; return length; //return(place); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 解决一个加好友限制问题 或者有好的方案
- ¥15 关于#java#的问题,请各位专家解答!
- ¥15 急matlab编程仿真二阶震荡系统
- ¥20 TEC-9的数据通路实验
- ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
- ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
- ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
- ¥30 求解达问题(有红包)