字符串排序

字符串排序:

     第一种:按字符串的长度排列字符串数组。
     方法:借助strlen()函数统计字符串的长度,后按照冒泡排序对字符数组进行排序
     代码实现:
       //借助strlen函数比较字符串长度将字符数组按由小到大排序,并输出最小的。
   #include 
#include
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 
        #include//按照字母表顺序对字符串进行排序 
#include
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

你可能感兴趣的:(字符串)