#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 CSS实现渐隐虚线框
- ¥15 有没有帮写代码做实验仿真的
- ¥30 vmware exsi重置后登不上
- ¥15 易盾点选的cb参数怎么解啊
- ¥15 MATLAB运行显示错误,如何解决?
- ¥15 c++头文件不能识别CDialog
- ¥15 Excel发现不可读取的内容
- ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
- ¥20 yolov5自定义Prune报错,如何解决?
- ¥15 电磁场的matlab仿真