c++中 怎样用指针数组将输入的长度不超过10的字符串按包含字符串的多少进行排序 5
展开全部
不知道是不是这个意思,还是要求在一行中输入字符串分割后排序
按串长度排序
#include "stdafx.h"
#include <iostream>
using namespace std;
#define N 10
#include<iostream>
using namespace std;
void sort(char *ptr[N])//N个字符串排序
{
int i,j;
char tmp[10],*p;
p=tmp;
for(i=0;i<N-1;i++)
for(j=i;j<=N-1;j++)
if(strlen(ptr[i])>strlen(ptr[j]))
{
strcpy(p,ptr[i]);
strcpy(ptr[i],ptr[j]);
strcpy(ptr[j],p);
}
}
int main()
{
char str[N][10],*ptr[N];
int i;
for(i=0;i<N;i++)
ptr[i]=str[i];
for(i=0;i<N;i++)
cin>>ptr[i]; //从键盘输入十个字符串
sort(ptr);
cout<<"sequence:"<<endl;
for(i=0;i<N;i++)
cout<<str[i]<<endl;
return 0;
}
字符串分割后排序程序,按串大小从小到大排序
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
#define N 10
#include<iostream>
using namespace std;
void sort(char *ptr[N],int index)//index个字符串排序
{
int i,j;
char tmp[10],*p;
p=tmp;
for(i=0;i<index;i++)
for(j=i;j<=index;j++)
if(strcmp(ptr[i],ptr[j])>0)
{
strcpy(p,ptr[i]);
strcpy(ptr[i],ptr[j]);
strcpy(ptr[j],p);
}
}
int main()
{
char str[N][10],*ptr[N];
string s_str;
getline(cin,s_str);
int i=0,j=0,index=0;
do
{
if (s_str[i]==' ')
{
str[index][j]=0;
index++;
j=0;
i++;
}
else if (i<s_str.length())
{
str[index][j]=s_str[i];
i++;
j++;
}
else
{
str[index][j]=0;
break;
}
}while(1);
for(i=0;i<=index;i++)
ptr[i]=str[i];
sort(ptr,index);
cout<<"sequence:"<<endl;
for(i=0;i<=index;i++)
cout<<str[i]<<endl;
return 0;
}
若满意请及时采纳,谢谢
按串长度排序
#include "stdafx.h"
#include <iostream>
using namespace std;
#define N 10
#include<iostream>
using namespace std;
void sort(char *ptr[N])//N个字符串排序
{
int i,j;
char tmp[10],*p;
p=tmp;
for(i=0;i<N-1;i++)
for(j=i;j<=N-1;j++)
if(strlen(ptr[i])>strlen(ptr[j]))
{
strcpy(p,ptr[i]);
strcpy(ptr[i],ptr[j]);
strcpy(ptr[j],p);
}
}
int main()
{
char str[N][10],*ptr[N];
int i;
for(i=0;i<N;i++)
ptr[i]=str[i];
for(i=0;i<N;i++)
cin>>ptr[i]; //从键盘输入十个字符串
sort(ptr);
cout<<"sequence:"<<endl;
for(i=0;i<N;i++)
cout<<str[i]<<endl;
return 0;
}
字符串分割后排序程序,按串大小从小到大排序
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
#define N 10
#include<iostream>
using namespace std;
void sort(char *ptr[N],int index)//index个字符串排序
{
int i,j;
char tmp[10],*p;
p=tmp;
for(i=0;i<index;i++)
for(j=i;j<=index;j++)
if(strcmp(ptr[i],ptr[j])>0)
{
strcpy(p,ptr[i]);
strcpy(ptr[i],ptr[j]);
strcpy(ptr[j],p);
}
}
int main()
{
char str[N][10],*ptr[N];
string s_str;
getline(cin,s_str);
int i=0,j=0,index=0;
do
{
if (s_str[i]==' ')
{
str[index][j]=0;
index++;
j=0;
i++;
}
else if (i<s_str.length())
{
str[index][j]=s_str[i];
i++;
j++;
}
else
{
str[index][j]=0;
break;
}
}while(1);
for(i=0;i<=index;i++)
ptr[i]=str[i];
sort(ptr,index);
cout<<"sequence:"<<endl;
for(i=0;i<=index;i++)
cout<<str[i]<<endl;
return 0;
}
若满意请及时采纳,谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询