首页 > 专题系列 > C基础练习 > C语言程序设计-字符串比较[指针应用]
2013
11-25

C语言程序设计-字符串比较[指针应用]

10073 字符串比较

【问题描述】按字符串比较过程对给定的两个字符串进行比较,若相等则结果为0,若不等则结果为对应不等字符的差。按要求实现对给定字符串的比较。

要求程序中用函数实现两个字符串的比较。int stringcmp(char *str1 ,char *str2 )
【输入形式】第一行为一个整数N,表示测试数据的组数,接下来的N行中每行包含两个字符串,字符串之间由空格分隔。
【输出形式】输出共N行,每行为对应输入一行的两个字符串的比较结果。
【样例输入】3
Happy Help
Help Help
Help Happy
【样例输出】- 4
0
4
【样例说明】测试3组字符串。第1组为“Happy”和”Help”,第2组为“Help”和“Help”,第3组为“Help”和“Happy”,比较结果分别为-4、0和4。
【评分标准】本题共2个测试点,每个测试点1.0分,共2.0分。

/************************************************************************/
/* author:xiaohuang  字符串比较                                         */
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
int stringcmp(char* ,char* );
int main()
{
	int n;
	scanf("%d",&n);
	int i=0;
	//存放100个字符
	char* str1 = (char *)malloc(100 * sizeof(char)); ;
	char* str2 = (char *)malloc(100 * sizeof(char)); ;

	for (i=0;i!=n;i++)
	{
		scanf("%s",str1);
		scanf("%s",str2);	
		int result = stringcmp(str1,str2);
		printf("%d\n",result);
	}
	free(str1);
	free(str2);
	return 0;
}

int stringcmp(char* str1,char* str2)
{

	while (*str1!='\0' && *str2!='\0')
	{
		if (*str1 != *str2)
		{
			return (*str1-*str2);
		}

		str1++;
		str2++;
	}

	while (*str1!='\0')
	{
		return (*str1-'\0');
	}

	while (*str2!='\0')
	{
		return ('\0'-*str2);
	}

	return 0;

}

 


  1. 第一句可以忽略不计了吧。从第二句开始分析,说明这个花色下的所有牌都会在其它里面出现,那么还剩下♠️和♦️。第三句,可以排除2和7,因为在两种花色里有。现在是第四句,因为♠️还剩下多个,只有是♦️B才能知道答案。