与strcmp()功能相同
int cmp_of_str(char *s1, char *s2)
{
for(int v = 0; !v; s1++, s2++)
{
if(*s1 > *s2) v = 1; //只要对应的一对字母1比2的大,s1>s2
else
if(*s1 < *s2) v = -1; //s1
if(*s1 == '\0') break; //s1=s2
}
return v;
}
//返回值:大于 正,小于 负, 等于 0
int m_strcmp(const char * str1,const char* str2)
{
if(str1==NULL || str2==NULL){
assert("pointer is NULL"); //出错
}
while(*str1 == *str2 && *str1 != '\0' && *str2!='\0' )
++str1,++str2;
return *str1-*str2;
}
下面是实现加测试
int func(char *pstr1, char *pstr2)
{
int flag=1;
while((*pstr1)!='\0' || (*pstr2)!='\0' )
{
if( *pstr1++ == *pstr2++ )
{
flag=0;
break;
}
}
if(((*pstr1)=='\0' && (*pstr2)=='\0' ))
flag=0;
return flag;
}
int main()
{
char *pstr1="dafaf";
char *pstr2="dafafa";
int flag;
flag=func(pstr1,pstr2);
printf("flag=%d\n",flag);
return 0;
}