当前位置: 代码迷 >> C语言 >> 写两个字符串比较是否相等的函数,相等返回1,不等返回0.不能用库函数
  详细解决方案

写两个字符串比较是否相等的函数,相等返回1,不等返回0.不能用库函数

热度:140   发布时间:2008-03-12 00:39:34.0
你俩的代码无法判断两个字符串长度不相等的时候的情况
----------------解决方案--------------------------------------------------------
回复 11# 的帖子
谢谢,学习了,明天一定编一个不用指针也不用库函数的函数。呵呵 ~
----------------解决方案--------------------------------------------------------
int cmp(char *a,char *b)
{
     while(*(++a)==*(++b))
         if(*a=='\0'||*b=='\0') break;
     return *a==*b?1:0;
}
----------------解决方案--------------------------------------------------------
ls忘记判断第一个字符了
经过提示,改成这样,应该最简了

程序代码:

int bijiao(char *a,char *b)
{
while(*a||*b)
if(*a++!=*b++)
return 0;
return 1;
}

----------------解决方案--------------------------------------------------------
程序代码:
int _StrCmp (const char * src,const char * dst)
{   
    int ret = 0 ;
    while( !(ret=*(unsigned char *)src -*(unsigned char *)dst)&& *dst)
           ++src, ++dst;         
    return( ret?1:0 );
}

----------------解决方案--------------------------------------------------------
int cmp(char *a,char *b)
{
     while(*a==*b)
         {a++;b++;if(*a=='\0'||*b=='\0') break;}
     return *a==*b?1:0;
}
----------------解决方案--------------------------------------------------------
int bijiao(char a[],char b[])
{
        int i,k;
        for(i=0;a[i]!='/0';i++)
          if(a[i]==b[i])
              k=1;
          else
              { k=0;
               break;
               }
     return k;
}
----------------解决方案--------------------------------------------------------
程序代码:

int strcmp(const char * cs,const char * ct)
{
    register signed char __res;

    while (1) {
        if ((__res = *cs - *ct++) != 0 || !*cs++)
            break;
    }

    return __res;
}

----------------解决方案--------------------------------------------------------
看看这个
int strcompare(char *s1,char *s2)
{
    while(*s1&&*s2)
    {
        if(*s1!=*s2)
           return 0;
        s1++;
        s2++;
    }
    if((*s1==*s2))
        return 1;
    else
        return 0;
}
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]广陵绝唱[/un] 在 2008-3-12 00:04 的发言:[/bo]

又重新去上机试验了一下,发现3#同志的程序存在错误,while中的i值自增两次,非常严重的错误,导致K值不准。

    后来在do--while中增加i++语句,while结束条件中的i++取消,上机验证,正确。

    呵~~~~~~~
    还希望更多人写 ...


你说的没错,毫无疑问,3楼的代码写的有严重问题~~~~~~~
----------------解决方案--------------------------------------------------------
  相关解决方案