利用指针完成两个字符串的比较函数StrCmp( ),模拟完成strcmp( )的功能。 指针

利用指针完成两个字符串的比较函数StrCmp( ),模拟完成strcmp( )的功能。 指针完全学不懂啊

int StrCmp(char *a, char *b)

{

 for (;; ++a, ++b)

 {

  if (*a < *b)

  {

   return -1; // 任意字符小于则小于

  }

  else if (*a > *b)

  {

   return 1; // 任意字符大于则大于

  }

  else if (*a == 0)

  {

   return 0; // 相等且都为0,量字符串同时结束,相等;否则检查下一个字符。

  }

 }

}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-28
int strcmp(constchar*str1,constchar*str2)
{
/*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++,return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/
while(*str1==*str2)
{
if(*str1=='\0')
return0;

str1++;
str2++;
}
return*str1-*str2;
}本回答被提问者和网友采纳
第2个回答  2014-12-12

利用指针完成两个字符串的比较函数StrCmp( ),模拟完成strcmp( )的功...
int StrCmp(char *a, char *b){ for (;; ++a, ++b) { if (*a < *b) { return -1; \/\/ 任意字符小于则小于 } else if (*a > *b) { return 1; \/\/ 任意字符大于则大于 } else if (*a == 0) { return 0; \/\/ 相等且都为0,量字符串同时结束,相...

编写函数strcmp(),用主函数调用实现两个字符串的比较。
int strcmp(const char p1[],const char p2[]){ register int i=0;while(p1[i]==p2[i]&&p1[i])i++; \/\/有了判断相等,只要再判断其中一个是不是0就行 return p1[i]-p2[i];} --- int strcmp_2(char s1[],char s2[])\/\/数组是作为指针传递的,数组大小是传不过来的 { ...

编写函数strcmp(),用主函数调用实现两个字符串的比较。 int strcmp(cha...
include<string.h> int strcmp(char s1[ ],char s2[ ]){ assert(strlen(s1)!=0&&strlen(s2)!=0);char *p1,*p2;p1=s1;p2=s2;while(*p1!=NULL&&*p2!=NULL){ if(*p1>*p2)return 1;else if(*p1<*p2)return -1;else { p1++;p2++;} } if(*p1==NULL&&*p2!=NULL) \/\/串2...

输入两个字符串,不用系统提供的函数strcmp(),比较两个字符串是否相等...
printf("第一个字符串大于第二个字符串\\n"); break; } } if(*p==*q)\/*当上述*p或*q都为'\\0'时,若此时还没比较出来两字符串的大小,则说明两字符串相等。此时输入就如你所写。*\/ { printf("两个字符串相等"); }}\/\/顺便整理的一下你的格式,你看看吧,现在已经完成你所想要的功能了。呵呵 本回答...

编写函数strcmp()用主函数调用实现两个字符串的比较的C 程序怎么编
1)在运用时首先要在源程序开始时加上#include<string.h>头文件。2)函数使用格式:strcmp(str1,str2);strcmp("china","korea");strcmp(str1,"beijing");以上三种格式均可以使用。3)规则:对两个字符串自左向右逐个字符相比,按ASCII码值的大小进行比较。直到出现不同的字符或遇到'\\0'为止。

输入两个字符串,编一个程序实现strcmp()函数,请帮忙,谢谢!
你的程序错在循环条件下的判断部分,首先你要理解你需要实现的函数strcmp()的具体功能(他本身的功能是判断两个字符串str1和str2,如果str1>str2,则输出正数,如果str1<str2,则输出负数,否则输出0表示两字符串相等,其实这里面比较的是字符串长度),而你的程序里面用到的是直接对字符进行比较,如...

...实现两个字符串的比较。即自己写一个strcmp函数,函数
int strcmp(char *p1, char *p2){ while (*p1 && *p2){ if (*p1 > *p2)return 1;else if (*p1 < *p2)return -1;else {p1++; p2++;} } if (*p1==0 && *p2==0)return 0;else if (*p1==0)return -1;else return 1;} ...

C语言的字符串函数strcmp()和strcnmp()
strcmp() 函数用于比较两个字符串(区分大小写),其原型为:int strcmp(const chars1, const char s2); 【参数】s1, s2 为需要比较的两个字符串。字符串大小的比较以ASCII码表上的顺序决定,将s1 第一个字符值减去s2 第一个字符值,若差值为0则继续比较下个字符;若差值不为0则返回差值。返回...

C语言程序 用指针实现字符串比较函数strcmp
还是你两个字符串的分隔?所以当你输入abc,abc的时候计算识别你的第一个字符串是abc,abc 第二个字符串为\\n 所以你这里得到的始终是1 至于解决的办法:让计算机识别你的分隔符号 那方法就很多了,比如 scanf("%s%s",a,b);输入的时候用空白符(空格,tab,回车键)相间隔 ...

编写一个模仿字符串比较函数strcmp()的程序,实现两个字符串s1,s2的比较...
strcmp(char* str1,char* str2)的比较方式 是从字符串头开始向后逐个字符比较,若str1的i位字符的ascii码大于或小于str2的相同位字符的ascii码 则返回str1[i]与str2[i]的差(大于返回正值,小于返回负值),若相等则返回0。这里&&是判断2个字符串是否判断到末尾,字符串末尾为'\\0',该while...

相似回答