2.指针数组及排序

2020-02-24  本文已影响0人  陈忠俊

语法/原型:
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;
}
上一篇下一篇

猜你喜欢

热点阅读