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; }
結果: