3470 - 习题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码之差。

题目输入

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

题目输出

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

输入/输出样例

题目输入

BOY
BAD

题目输出

14

C语言解答

#include<stdio.h>
int main()
{
	char arr1[80],arr2[80];int a;
	int StrCmp(char *s1, char * s2); 
	gets(arr1);
	gets(arr2);
	a=StrCmp(arr1,arr2);
	printf("%d\n",a);
	return 0;
}
int StrCmp(char *s1, char * s2)
{
	int a,i;
	for(i=0;;i++)
	{
		if(*(s1+i)!=*(s2+i))
		{
		a=*(s1+i)-*(s2+i);
		return a;
		}
	}
}

C++解答

#include <bits/stdc++.h>

using namespace std;

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

for(int i=0;(*s1!='\0'||*s2!='\0');i++){

if(*s1-*s2!=0) return(*s1-*s2);

s1++;

s2++;

}

return 0;

}

int main(){

char a[100],b[100];

scanf("%s%s",a,b);

printf("%d",StrCmp(a,b));

return 0;

}
时间限制 1 秒
内存限制 12 MB
讨论 统计
上一题 下一题