字符串排序

字符串排序:

     第一种:按字符串的长度排列字符串数组。
     方法:借助strlen()函数统计字符串的长度,后按照冒泡排序对字符数组进行排序
     代码实现:
       //借助strlen函数比较字符串长度将字符数组按由小到大排序,并输出最小的。
   #include<stdio.h> 
#include<string.h>
int main() { 
 	char *ch[5]={ "gad","sags","sa","ajhjakj","ihsoqqpppppppppppp"};
		int i,j;
	char *temp;
	for (i=0;i<4;i++) { 
		for(j=0;j<5-i-1;j++) { 
			if (strlen(ch[j])>strlen(ch[j+1])) { 
				temp=ch[j];
				ch[j]=ch[j+1];
				ch[j+1]=temp;
			}
		}
	}
		printf("Min is :%s",ch[0]);
}

运行结果:Min is : sa
第二种:按照字母表顺序对字符串数组进行排序 。
方法:借助strcmp()函数比较字符串大小,(而字符串大小的比较是以ASCII 码表上的顺序来决定的),后按照冒泡排序对字符数组进行排序。
注明:int strcmp(const char *s1,const char *s2)
如果s1字符串在机器排序序列中位于s2的后面,该函数返回一个正数;如果两个字符串相等,则返回
0;如果s1字符串在机器排序序列中位于s2的前面,该函数返回一个负数。
代码实现

   #include <stdio.h>
        #include<stdio.h>//按照字母表顺序对字符串进行排序 
#include<string.h>
int main() { 
		char *ch[5]={ "gad","sags","sa","ajhjakj","ihsoqqpppppppppppp"};
		int i,j;
		char *temp;
		for (i=0;i<4;i++) { 
			for (j=0;j<4-i;j++) { 
				if (strcmp(ch[j],ch[j+1])>0) { 
					temp=ch[j];
					ch[j]=ch[j+1];
					ch[j+1]=temp;
				}
			}
		} 
		for (i=0;i<5;i++) { 
			printf("%s\n",ch[i]);
		}
} 

运行结果:ajhjak
gad
ihsoqqpppppppppppp
sa
sags

    原文作者:岑**
    原文地址: https://blog.csdn.net/xiayngbaidu12345/article/details/103190000
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞