10.17寫一函數,實現兩個字符串的比較。即自己寫一個strcmp函數,函數原型為: int strcmp(char * p1,char * p2) 設p1指向字符串s1,p2指向字符串s2。要求:當s1=s2時,返回值為0。當s1≠s2時,返回它們兩者的第一個不同字符的ASCII碼差值(如”BOY”與”BAD”,第二個字母不同,”O”與”A”之差為79-65=14);如果s1>s2,則輸出正值;


10.17寫一函數,實現兩個字符串的比較。即自己寫一個strcmp函數,函數原型為: int strcmp(char * p1,char * p2) 設p1指向字符串s1,p2指向字符串s2。要求:當s1=s2時,返回值為0。當s1≠s2時,返回它們兩者的第一個不同字符的ASCII碼差值(如”BOY”與”BAD”,第二個字母不同,”O”與”A”之差為79-65=14);如果s1>s2,則輸出正值;

#include <stdio.h>

int main(){
    int strcmp(char * p1,char * p2);
    char str1[50];
    char str2[50];
    char * p1,* p2;
    int t;
    printf("請輸入兩條要比較的字符串.\nstr1=");
    gets(str1);
    printf("str2=");
    gets(str2);
    p1 = str1;
    p2 = str2;
    //手寫strcmp函數
    t=strcmp(p1,p2);
    printf("str1和str2的ASCII碼差值為:%d\n",t);
return 0;
}

int strcmp(char * p1,char * p2){
    int m,t;
    while(*p1 != '\0' && *p2 != '\0'){        
        m= *p1 - *p2;
        if(m != 0){
            t=m;
            break;
        }
        p1++;
        p2++;    
    }
    if(*p1=='\0' || *p2=='\0'){
        t=*p1-*p2;
    }
    return t;
}

結果:

 


免責聲明!

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



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