#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
bool myfunction (const string str1,const string str2) {
return (str2.length() < str1.length());
}
void myfunction2(vector<string>&str)
{
for(int i=0;i<str.size();i++)
for(int j=0;j<str.size()-i-1;j++)
if(strlen(str[j].c_str())<strlen(str[j+1].c_str()))
{
swap(str[j],str[j+1]);
}
auto i=str.begin();
for(;i!=str.end();i++)
{
cout<<*i;
if(i==str.end()-1)
break;
cout<<' ';
}
}
void my_word(char input[], char output[]){
vector<string> str;
char *cur = input;
char *p = input;
int len;
bool flag = false;
while(*p != '\0'){
if((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'))
p++;
else{
len = p-cur;
if(len > 1){
string tmp(cur,len);
for(int i=0;i<str.size();i++)
if(tmp == str[i])
flag = true;
if(flag != true)
str.push_back(tmp);
}
cur = p+1;
p++;
flag = false;
}
}
len = p-cur;
if(len > 1){
string tmp(cur,len);
for(int i=0;i<str.size();i++)
if(tmp == str[i])
flag = true;
if(flag != true)
str.push_back(tmp);
}
//sort(str.begin(),str.end(),myfunction);
myfunction2(str);
}
int main(){
char input[]="somedays nina loc buses, somes1234123drivers";
char output[500];
my_word(input, output);
return 0;
}
对给定字符串,取出它的子字符串,并把子字符串按照长度排序
最新推荐文章于 2019-08-25 12:37:14 发布