3个回答
展开全部
#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;
}
展开全部
#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]);
}
试试看行不,不行自己再改下橘橘圆
#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]);
}
试试看行不,不行自己再改下橘橘圆
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/拆喊乎/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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询