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");
}
输出结果如下: