加载中...

浙江理工大学入队200题——19N

问题 N: 习题8-17 字符串比较

题目描述

自己写一个函数实现字符串比较,指定函数原型如下:

int StrCmp(char *s1, char * s2);

若s1和s2完全一样,则返回0,否则返回二者第一个不同字符的ASCII码的差值(如"BOY"和"BAD",第一个字符一样,则比较第二个字符,第二个字符'O'与'A'不同,则计算此字符ASCII码之差79-65=14)。如果s1>s2,输出结果为正值,如果s1<s2,则输出结果为负值。

在main函数中输入两个字符串,调用该函数,得到两个字符串大小关系。输出其ASCII码之差。

输入

输入分两行,每行一个字符串(以回车结束)

输出

一个整数,单独占一行。表示两个字符串之差。

样例输入 Copy

BOY
BAD

样例输出 Copy

14

题解

没啥解释,这里没坑,唯一注意的是字符数组结尾自动'\0'

代码(AC)

点击查看代码
#include<stdio.h>
int StrCmp(char*s1, char *s2)
{
	int i=0,y;
	while(*(s1+i)!='\0'&&*(s2+i)!='\0'&&(*(s1+i)==*(s2+i)))
	{
		i++;
	}
	return *(s1+i)-*(s2+i);
 } 
int main()
{
	int StrCmp(char *s1, char *s2);
	char str1[20],str2[20];
	char *p,*q;
	gets(str1);
	gets(str2);
	p=str1,q=str2;
	printf("%d\n",StrCmp(p,q));
	return 0;
}
posted @ 2022-10-30 15:24  shany212  阅读(66)  评论(0编辑  收藏  举报