语法/原型:
int strcmp(const char* stri1,const char* str2);
参数 str1 和 str2 是参与比较的两个字符串。
strcmp() 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现不到的字符,或者到达字符串末尾(遇见\0)。
返回值:
如果返回值 < 0,则表示 str1 小于 str2。
如果返回值 > 0,则表示 str2 小于 str1。
如果返回值 = 0,则表示 str1 等于 str2。
#include<stdio.h>
#include<string.h>
#从小往大排序字符串
void sort(char *name[], int n){
char *pt;
int i, j, k;
for(i = 0; i < n - 1; i++){
k = i;
for(j = i + 1; j < n; j++)
if(strcmp(name[k], name[j]) > 0) k = j; #循环找到该次轮循的最小值
if(k != i){ #找到最小的字符串后,交换该次循环的字符串的地址
pt = name[i];
name[i] = name[k];
name[k] = pt;
}
}
}
void print(char *name[], int n){
int i;
for(i = 0; i < n; i++) printf("%s\n", name[i]);
}
int main(){
static char *name[] = {"CHINA", "AMERICA", "AUSTRALIA", "FRANCE", "GERMAN"};
int n = 5;
sort(name, n);
print(name, n);
return 0;
}
网友评论