由键盘输入一行仅由英文字母及空格组成的字符,编程实现(相邻单词之间用一个空格或多个空格隔开)。
(1)输出每个单词及其长度。
(2)输出最长的单词。
输入样例:
I am a boy
输出样例:
I 1
am 2
a 1
boy 3
行了,纯模拟就行,原来想用vector< map<string,int> >来存储,想想算了吧因为我的Dev不是c++11和c++14,哦My God
#include<iostream>
#include<string.h>
#include<algorithm>
#include<bits/stdc++.h>
using namespace std;
struct node{
string str;
int num;
}N;
int main(){
string str;
getline(cin,str);
str+=' ';
int i=0;
string temp="";
vector<node>it;
int num=0;
for(int i=0;i<=str.length();i++){
if(str[i]!=' '){
num++;
temp+=str[i];
}
else if(str[i-1]!=' '){
N.str=temp;
N.num=num;
it.push_back(N);
temp="";
num=0;
}
}
int v=it.size();
for(int i=0;i<v;i++)
cout<<it[i].str<<" "<<it[i].num<<endl;
}