strcmp函数的C语言实现

strcmp函数是string库的常用函数,今天我们来看看如何自己实现这个函数:

先上代码:

#include 
#include
void Strcmp(char *str1,char *str2)
{
    while((*str1!='\0')&&(*str1==*str2))
    {
        str1++;
        str2++;
    }
    int t;
    t=*str1-*str2;
    if(t==0)
        printf("same string\n");
    if(t>0)
        printf("str1 is bigger\n");
    if(t<0)
        printf("str2 is bigger\n");
}
int main()
{
    char str1[10],str2[10];
    start:
    gets(str1);
    gets(str2);
    Strcmp(str1,str2);
    goto start;
    return 0;

}


测试如下:


strcmp函数的C语言实现_第1张图片

整个代码的精髓在于下面这句:


(*str1!='\0')&&(*str1==*str2)

这是判断两个字符串是否相等的关键。即:当字符指针指向空,意味着字符串已经移动到最后了,比较已经结束,可以退出循环。或者两个字符串不相等时,函数也可以退出了。

我们所需要的关键信息已经得到,接下来看看字符串是否相等,这取决于循环退出时,str1和str2指向的元素是否相等。


接下来就是if来判断了。这里比较简单就不展开讲了。


你可能感兴趣的:(C语言基础,C语言)