字符串对比

该文提供了三个示例,分别用C++和C语言编写,用于判断两个输入字符串的关系。程序会根据字符串的长度和字符内容,确定它们是否长度不等、完全一致(区分大小写)、仅在不区分大小写时一致或完全不一致,并输出对应的编号。
摘要由CSDN通过智能技术生成

7-4 字符串对比

分数 15

给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一

1:两个字符串长度不等。比如 Beijing 和 Hebei

2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing

3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing

4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。

输入格式:

包括两行,每行都是一个字符串 。

输出格式:

仅有一个数字,表明这两个字符串的关系编号。

输入样例:

BEIjing
beiJing

输出样例:

3

c++ 

#include <iostream>
#include<string>
using namespace std;
//字符串对比
// A 65 a 97
int main()
{
    string str1;
    string str2;
    cin>>str1>>str2;
    if(str1.size() != str2.size())
        cout<<1;
    else{
        if(str1 == str2)
            cout<<2;
        else {
            for(int i = 0; i < str1.size(); i++){
                if (str1[i] > 97)
                    str1[i] -= 32;
                if (str2[i] > 97)
                    str2[i] -= 32;
            }
            if(str1 == str2)
                cout<<3;
            else
                cout<<4;
        }
    }
}

C语言 

#include <stdio.h>
#include <string.h>
int main()
{ 
   char a[100],b[100];
   int l1,l2;
   gets(a);
   gets(b);
   l1=strlen(a);
   l2=strlen(b);
   if(l1!=l2)
     printf("1");
     else{
                if(strcmp(a,b)==0)
                    printf("2");
                    else{
                        strcpy(a,strlwr(a));
                        strcpy(b,strlwr(b));
                        if(strcmp(a,b)==0)
                           printf("3");
                           else
                           printf("4");

                    }


    }
     return 0;

}




#include <stdio.h>
#include <string.h>
#include <ctype.h> // 包含toupper和tolower函数
int main() {
	char s1[11], s2[11];
	scanf("%s%s", s1, s2);
	int len1 = strlen(s1), len2 = strlen(s2);
	// 情况1
	if (len1 != len2) 
	{
		printf("%d", 1);
	}
	// 情况2
	else if (strcmp(s1, s2) == 0) 
	{
		printf("%d", 2);
	}
	// 情况3
	else {
		int flag = 1;
		for (int i = 0; i < len1; i++) {
			if (tolower(s1[i]) != tolower(s2[i]))
			{ // 不区分大小写比较
				flag = 0;
				break;
			}
		}
		if (flag) 
		{
			printf("%d", 3);
		}
		// 情况4
		else 
		{
			printf("%d", 4);
		}
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值