C指针做strcmp函数

利用指针和函数实现strcmp函数的使用。

知识点:利用指针的++,-- 等运算操作。
基本思路:定义一个有二十个字符数的一维数组a和一个有十个字符数的一维数组b,手动输入a数组和b数组,然后调用需要的strcmp函数(此处的函数名为qzstrcmp)。

 char a[20],b[10];
 gets_s(a,20);
 gets_s(b,10);
 qzstrcmp(a,b);

这就是主函数的内容,下来就是qzstrcmp函数。
定义qzstrcmp函数,形参是两个指针变量。

int qzstrcmp(char *a,char *b)

子函数的循环体使用while循环,并且使用指针的++运算。
在这里*a-*b是利用ASCII码的大小比较。

 while(*a++,*b++)//让a,b数组从开始做++循环
 {
  if((*a++)!=(*b++))//当遇到第一个不相等的字符时相减
  {
   t=*a-*b;
   break;
  }
 }

运算完成后,判断 t 的值,进而比较 a , b 两个数组的大小。
完整代码如下:

#include<stdio.h>
#include<windows.h>
int qzstrcmp(char *a,char *b)
{
 int t;
 while(*a++,*b++)
 {
  if((*a++)!=(*b++))
  {
   t=*a-*b;
   break;
  }
 }
 if(t>0)
 {
  printf("a数组大\n");
 }
 if(t<0)
 {
  printf("b数组大\n");
 }
}
void main()
{
 int m;
 char a[20],b[10];
 gets_s(a,20);
 gets_s(b,10);
 qzstrcmp(a,b);
 system("pause");
}

输出结果如下:
C指针做strcmp函数