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