c有一道题目,请指教,编写一道程序

来源:百度知道 编辑:UC知道 时间:2024/05/11 00:57:06
5-9从键盘上输入一行字符,返回最长的单词长度,同时输出该单词
比如说 从键盘上输入shanghai is a city.
用gets()取得,用strlen分析长度

输出的是:
shanghai
8

二楼是错误的,我输入的是一行字符,其中单词有长有短,就是一句话,然后返回最长的单词,和他的长度,不是就输入一个单词,然后输出他的长度

#include<iostream>
#include<string>
using namespace std;

int main()
{
char str[1000];
cout<<"输入句子:"<<endl;
cin.getline(str,1000);

int num=1;
for(int i=0; i<strlen(str); i++)
{
if(str[i]==' ')
{
num++;
}
}

string *word=new string [num];
int i1=0;

for(i=0; i<strlen(str); i++)
{
if(str[i]!=' ')
{
word[i1]+=str[i];
}
else
{
i1++;
}
}

string longStr;

longStr=word[0];
for(i=1; i<num; i++)
{
if(longStr.size()<=word[i].size())
{
longStr=word[i];
}
}

int maxStrLen=longStr.size();
int maxStrNum=0;
for(i=0; i<num; i++)
{
if(word[i].size()==maxStrLen)
{
maxStrNum++;
}
}

s