有待改进,输出没有对齐
#include<iostream>
#include<iomanip>
#include<sstream>
#include<string>
using namespace std;
int test(int a[],char b[][20],int num){//二维数组做形参,第二维必须标明
char ch;
int i=0,j=0;
while(1){
ch=cin.get();
if(ch=='\n'){
num++;
a[i]=j;
break;
}
if(ch!=' '){
b[i][j]=ch;
j++;
}
else{
a[i]=j;
j=0;
i++;
num++;
}
}
return num;
}
int main()
{
int a[20],num=0;//a[20]放单词长度
char b[100][20];//b[][]放单词
cout<<"输入一个英文句子:";
num=test(a,b,num);
for(int k=0;k<num;k++){
for(int l=0;l<a[k];l++)
cout<<b[k][l];
cout<<setiosflags(ios_base::right)<<setw(12)<<a[k]<<endl;
}
return 0;
}
string类大法好
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main(){
string s;
getline(cin,s);
string word;
while(s.find(" ")!=s.npos){
word=s.substr(0,s.find(" "));
s.erase(0,s.find(" ")+1);
cout<<left<<setw(12)<<word<<left<<setw(8)<<word.length()<<endl;
}
cout<<left<<setw(12)<<s<<left<<setw(8)<<s.length()<<endl;
return 0;
}