编写一函数,实现两个字符串的比较。即自己写一个strcmp函数,
函数原型为strcmp(char *p1,char *p2),设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;
(s1,s2长度相等并且不超过100) 若s1!=s2,返回它们两者第一个不同字符的ASCII码差值
(如“BOY”与“BAD”,第2个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值,反之输出负值。(本题要求用指针来做)
输入
第一行为N,表示接下来有N组测试数据。接下来的N行表示N组测试数据,
每组测试数据包含两个字符串,中间用空格隔开,并且保证每个字符串中的字符都是小写字母。
输出
输出两个字符串比较的结果。
样例输入
2
abcdef aaaaaa
a z
样例输出
1
-25
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int strcmp_mine(char*p, char*q)
{
int len_p = strlen(p);
int len_q = strlen(q);
for (int i = 0; i < len_p && i < len_q; i++)
{
if (*(p + i) == *(q + i))
;
else if (*(p + i) != *(q + i))
{
return *(p + i) - *(q + i);
}
}
return 0;
}
int main()
{
int n;
while (scanf("%d", &n) != EOF)
{
char *p, *q;
int size_char = sizeof(char);
p = (char *)malloc(100 * size_char);
q = (char *)malloc(100 * size_char);
scanf("%s %s", p, q);
printf("%d\n", strcmp_mine(p, q));
}
return 0;
}