自己写一个strcmp函数

编写一函数,实现两个字符串的比较。即自己写一个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>
// // 拷贝到平台的时候把my_fuction_lib.h注释掉.
//#include "my_fuction_lib.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;
}
//主函数main
int main()
{
	
	int n;
	while (scanf("%d", &n) != EOF)
	{

		//printf("test:\n");
		/* char s1[100],s2[100]; */
		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;
}
posted @ 2024-08-18 15:19  xuchaoxin1375  阅读(62)  评论(0)    收藏  举报  来源