编写自己的strcmp函数
1.首先理解strcmp函数的实现过程
strcmp(字符串1,字符串2)实现过程是从左到右对字符串元素逐个比较其ASCII码的大小比较,遇到不一样的字符或者‘\0‘结束比较,str1=str2,返回0,str1<str2,返回负整数,srt1>str2返回正整数。
2.利用函数来实现
#include<stdio.h>
void my_stecmp(char * s1,char * s2)//无返回值函数 形参类型为字符指针
{
char * one = s1;//将指针指向s1 不修改字符串常量
char * two = s2;
whlie (*one !='\0' && *two != '\0' ){ //当两个字符串不是空时
if(*one == *two){ //如果两个字符串对应位置元素相等 注意要写==
one++;//字符串1移动到下一个元素
two++;//字符串2移动到下一个元素
continue;回到循环
}
break; 跳出循环 此时指针指向两数组第一个不同元素
}
int i = *one - *two;//用i来记录字符串1和字符串2对应元素的ASCII码差值
if(i<0){
printf("s1 < s2";
}
else if(i>0){
printf("s1 > s2");
}
else if(i==0){
printf("s1 == s2");
}
return ;
}
int main(int argc,const char*argv[])
{
char s1 [20];//定义一个字符串数组 用来输入字符串
char s2 [20];
scanf("%s",s1);//输入字符串1
scanf("%s",s2);//输入字符串2
my_stecmp(s1,s2);//调用写好的字符串比较函数
return 0;
}
3.注意事项:
判断是否相等要用“==”号。
4.测试结果
没有加换行符