概述
/*说明一个可存放10个字符串的字符数组,个字符串有用户输入(假设用户输入的字符串长度上限为32)
数组中每个元素的大小根据用户输入串的实际大小动态确定。编一个函数对数组进行排序。
(排序时无需交换两个串,只交换他们的指针即可)*/
//C++实现
#include<iostream.h> #include<conio.h> //因为编译器的问题,所以用getch()显示运行结果 #include<string.h> #define N 10 /*根据字符串的大小排序,由大到小*/ void sort(char *p[N]); int main() { char str[N][50]; /*保存字符串的二维数组,每个字符串的最大长度是50*/ int i; char *p[N]; /*声明指针数组,保存二维数组每一行的地址*/ cout<<"请输入"<<N<<"个字符串:n"; for(i=0;i<N;i++) cin>>str[i]; /*初始化二维数组*/ for(i=0;i<N;i++) /*初始化指针数组*/ p[i]=str[i]; sort(p); getch(); return 0; } void sort(char *p[N]) { int i,j; char *t; cout<<"由大到小排序:"<<endl; for(i=0;i<N-1;i++) //直接排序发法 for(j=i+1;j<N;j++) { if(strcmp(p[j],p[i])>0) { t=p[i]; p[i]=p[j]; p[j]=t; } } for(i=0;i<N;i++) cout<<p[i]<<" "; /*输出排序后的结果*/ cout<<endl; }
//C实现
#include<stdio.h> #include<string.h> #include<conio.h> void sort(char *a[],int size); void print(char *a[],int size); int main() { char *a[]={"follow","base","we"}; int size=3; sort(a,size); print(a,size); getch(); return 0; } void sort(char *a[],int size) { int k,i,j; char *t; for(i=0;i<size-1;i++) { k=i; for(j=i+1;j<size;j++) if(strcmp(a[j],a[k])>0) k=j; if(k!=i) { t=a[i]; a[i]=a[k]; a[k]=t; } } } void print(char *a[],int size) { int i; for(i=0;i<size;i++) printf("%sn",a[i]); }
最后
以上就是真实白云为你收集整理的7--7函数实现指针字符数组的排序的全部内容,希望文章能够帮你解决7--7函数实现指针字符数组的排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复