#include<stdio.h>
int main(){
int strcmp(char *p1, char *p2); // 声明strcmp函数
int m;
char str1[20],str2[20],*p1,*p2; // 定义字符串及指针变量
printf("请输入两个字符串:\n");
scanf("%s",str1); // 输入第一个字符串
scanf("%s",str2); // 输入第二个字符串
p1=&str1[0]; // 初始化p1指向str1的首字符
p2=&str2[0]; // 初始化p2指向str2的首字符
m=strcmp(p1,p2); // 调用strcmp函数比较两个字符串
printf("result:%d\n",m); // 输出比较结果
return 0;
}
/*
* strcmp函数:比较两个字符串的字符差异
* 参数:
* p1:指向第一个字符串的指针
* p2:指向第二个字符串的指针
* 返回值:
* 0:两个字符串相等
* 小于0:p1所指字符串小于p2所指字符串
* 大于0:p1所指字符串大于p2所指字符串
*/
int strcmp(char *p1, char *p2) {
int i=0;
while(*(p1+i)==*(p2+i)) // 逐字符比较两个字符串
if(*(p1+i++)=='\0')return 0; // 如果遇到字符串结束符,则返回0
return (*(p1+i)-*(p2+i)); // 如果两个字符不相等,返回它们的差值
return 0; // 此行代码是多余的,实际上无需再次返回0
}