字符串排序:
第一种:按字符串的长度排列字符串数组。
方法:借助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