有5个字符串,要求将它们按由短到长的顺序排列,用string+vector方法
要用string+vector就是说用在vector中使用string类型的如:vector<string>ivec...
要用string+vector 就是说用在vector中使用string类型的如:vector<string>ivec
展开
展开全部
第一种 用string的
#include<iostream>
#include<string>
const int N=20;
const int n=5;
using namespace std;
void swap(char x,char y)
{
char p;
p=x;
x=y;
y=p;
}
void main()
{
char *a[n];
int i,j;
for(i=0;i<n;i++)
{
a[i]=new char[N];
cin>>a[i];
}
int minlen;
for(i=0;i<n;i++)
{
minlen=i;
for(j=i+1;j<n;j++)
if(strlen(a[j])<strlen(a[minlen]))
minlen=j;
swap(a[i],a[minlen]);
}
for(i=0;i<n;i++)
cout<<a[i]<<endl;
for(i=0;i<n;i++)
delete a[i];
}
第二种方法,用vactor的
#include<iostream>
#include<vector>
const int N=20;
const int n=5;
using namespace std;
template<class T>
int Size(vector<T> *x)
{
for(int i=0;(*x)[i]!='\0';i++)
{}
return i;
}
template<class T>
void swap(vector<T> x,vector<T> y)
{
vertor p;
p=x;
x=y;
y=p;
}
void main()
{
vector<char> *a[n];
int i,j;
for(i=0;i<n;i++)
{
a[i]=new vector<char>(N);
for(int j=0;j<N;j++)
{
(*a[i])[j]=getchar();
if((*a[i])[j]=='\n')
{
(*a[i])[j]='\0';
break;
}
}
}
int minlen;
for(i=0;i<n;i++)
{
minlen=i;
for(j=i+1;j<n;j++)
if(Size(a[j])<Size(a[minlen]))
minlen=j;
swap(a[i],a[minlen]);
}
for(i=0;i<n;i++)
{
for(j=0;j<Size(a[i]);j++)
cout<<(*a[i])[j];
cout<<endl;
}
cout<<endl;
for(i=0;i<n;i++)
delete a[i];
}
#include<iostream>
#include<string>
const int N=20;
const int n=5;
using namespace std;
void swap(char x,char y)
{
char p;
p=x;
x=y;
y=p;
}
void main()
{
char *a[n];
int i,j;
for(i=0;i<n;i++)
{
a[i]=new char[N];
cin>>a[i];
}
int minlen;
for(i=0;i<n;i++)
{
minlen=i;
for(j=i+1;j<n;j++)
if(strlen(a[j])<strlen(a[minlen]))
minlen=j;
swap(a[i],a[minlen]);
}
for(i=0;i<n;i++)
cout<<a[i]<<endl;
for(i=0;i<n;i++)
delete a[i];
}
第二种方法,用vactor的
#include<iostream>
#include<vector>
const int N=20;
const int n=5;
using namespace std;
template<class T>
int Size(vector<T> *x)
{
for(int i=0;(*x)[i]!='\0';i++)
{}
return i;
}
template<class T>
void swap(vector<T> x,vector<T> y)
{
vertor p;
p=x;
x=y;
y=p;
}
void main()
{
vector<char> *a[n];
int i,j;
for(i=0;i<n;i++)
{
a[i]=new vector<char>(N);
for(int j=0;j<N;j++)
{
(*a[i])[j]=getchar();
if((*a[i])[j]=='\n')
{
(*a[i])[j]='\0';
break;
}
}
}
int minlen;
for(i=0;i<n;i++)
{
minlen=i;
for(j=i+1;j<n;j++)
if(Size(a[j])<Size(a[minlen]))
minlen=j;
swap(a[i],a[minlen]);
}
for(i=0;i<n;i++)
{
for(j=0;j<Size(a[i]);j++)
cout<<(*a[i])[j];
cout<<endl;
}
cout<<endl;
for(i=0;i<n;i++)
delete a[i];
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询