c语言 输入语句 找出语句中 最长的单词

如题... 如题 展开
 我来答
吉祥二进制
高粉答主

2015-05-26 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84573

向TA提问 私信TA
展开全部
#include <册睁stdio.h>
#include <string.h>
//用于判断字符是否是英文字节
int word(char c)
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return 1;
else return 0;
}
int longest(char str[]) 
{
int i,flag=1,len=0,point,max_len=0,max_point;
//遍历字符
for(i=0;i<=strlen(str);i++)
{
//判断是否为英文
if(word(str[i])) 
{
if(flag==1) 
{
//单词第一个找到后改变标志
point=i; 
flag=0;
}
else len++; //开始对这个单词长度进行累加
}
else //非英文字母
{
//等待第一个英文字母的出现,所以flag=1(要是下一个是英文字母的话就能执行上面的if)
flag=1; 
//之前累加的单词长度是否比上一个单词更长(第一次的话max_len初始化为0,len必大于max_len)
if(len>max_len)
{
//将单词长度保存下来
max_len=len;
//将最长单词竖毁的第一个英文字母在字符串中的位置保存下来
max_point=point;
}
len=0;
}
}
return (max_point);
}
int main()
{
int word(char c);
int longest(char str[]);
int i;
char str[80];
printf("输入一行字符余姿备串\n\n");
gets(str);
printf("\n\n最长的单词为:\n\n");
for(i=longest(str);word(str[i]);i++)
printf("%c",str[i]);
printf("\n");
return 0;
}

miniappqbulfLXiL0c2T
推荐于2016-11-15 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:204
采纳率:0%
帮助的人:147万
展开全部
#include <string.h>
#include <stdio.h>
void main()
{
char a[1000];
char b[30];
int i,j,m=0,n=0;
printf("请输入字符串:");
gets(a);
for(i=0,j=0;a[i]!='\伍扰0';i++)
{
if(a[i]!=' ')
j++;
else if(j>m)
{
m=j;
n=i;
j=0;
}
}
printf("最长的单圆塌词是:\n");
for(i=0;i<m;i++)putchar(a[i+n-m]);
}

试试看行不,不行自己再改下橘橘圆
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yili16438
2009-11-15 · TA获得超过255个赞
知道小有建树答主
回答量:459
采纳率:100%
帮助的人:327万
展开全部
/拆喊乎/VC6通过编译,分给我,
#include <string>
#include <sstream>
#include <iostream>
#include <map>
using namespace std;
int main()
{
string line, str;
map<渗链string::size_type, string> sMap;
cout<<"输入:";
getline(cin, line);
istringstream iString(line);
while(iString>>str)
{
sMap[str.size()] = str;
}
cout<<"最旅悉长的单词是:"
<<sMap.rbegin()->second<<endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式