输入两个字符串,不用系统提供的函数strcmp(),比较两个字符串是否相等),用指针实现。

求高手ia
2024-10-31 06:13:04
推荐回答(3个)
回答1:

与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 else
if(*s1 == '\0') break; //s1=s2
}
return v;
}

回答2:

//返回值:大于 正,小于 负, 等于 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;
}

回答3:

下面是实现加测试
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;
}