C語言--strcmp()函數


strcmp函數是string compare(字符串比較)的縮寫,用於比較兩個字符串並根據比較結果返回整數。基本形式為strcmp(str1,str2),若str1=str2,則返回零;若str1<str2,則返回負數;若str1>str2,則返回正數。

首先說明strcmp的使用格式:

        strcmp(char1 *, char2 *);

        該函數功能是:從第一個元素開始,依次比較字符串數字char1和char2,如果char1的第n個元素比char2d的第n個元素大,則返回值為大於0 的數,相反的話,則返回小於0的數,如果相等,則繼續比較                n+1個元素,直到第n+1個不相等,就停止比較,並返回相應的值。(注意:char1 *這里實際放的是一個指針,字符數組名實際就是一個常量指針)

       舉例:

        char name_1[10]={"zhangsan"}; name_2[10]={"zhaoliu"};

        syrcmp(name_1,name_2);

        比較的結果是:因為“z”“h”“a”都相等,所以繼續比較第四個元素“n” 和“o”;比較至此,已經有返回值了,所以停止后邊的比較,並返回相應的值。

        

        應用實例;按照字母從小到大輸出姓名

    

 char name[5][20]={"zhangsan","lisi","wangwu","zhaoliu","any"};

        //k控制比較的趟數

      for(int k=0; k<5;k++){

               //i控制比較的第一維空間

            for (int i = 0; i<4; i++) {

                //j控制每個姓名的第j個字母

                for (int j = 0; j<20; j++) {

                    //利用strcmp  函數比較字母大小

                    if (strcmp(&name[i][j], &name[i+1][j])>0) {     //使用&的原因是:字符數組名的本質是一個指針,指向一個地址。在這里使用&取某一個元素的地址。

                        char temp[20];

                        strcpy(temp, name[i]);

                        strcpy(name[i], name[i+1]);

                        strcpy(name[i+1], temp);

                    }

                    //交換結束后,停止本組名字的繼續比較,進行下一個名字的比較

                    break;

                }

            }

            }

        for (int i = 0; i < 5; i++) {

            printf("%s\n",name[i]);

        }

//運行結果

        any

        lisi

        wangwu

        zhaoliu

        zhangsan

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM