题目要求:
17.写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为
int strcmp(char *pl,char *p2);
设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;若s1≠s2,返回它们二者第1个不同字符的 ASCI1码差值(如"BOY"与"BAD",第2个字母不同,0与A之差为79-65=14)。如果s1>s2,则输出正值;如果s1<s2,则输出负值。
具体程序:
c
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{
int strcmp(char* p1, char* p2);
char p1[100];
char p2[100];
printf("请输入两个字符串:\n");
gets(p1);
gets(p2);
int result=strcmp(p1, p2);
if (result == 0)
{
printf("字符串相同");
}
else
{
printf("%d", result);
}
return 0;
}
int strcmp(char* p1, char* p2)
{
int i, j,flag = 1;
for (i = 0; i < strlen(p1); i++)
{
if (*(p1 + i) - *(p2 + i) == 0)continue;
else
{
flag = 0;
return(*(p1 + i) - *(p2 + i));
}
}
if (flag == 1)return 0;
}
运行结果: