Aprendizagem de programação C / C ++ - Semana 9 ① Comparação de strings ignorando maiúsculas e minúsculas

Link do tópico

Descrição do título

Geralmente, podemos usar strcmp para comparar o tamanho de duas strings. O método de comparação é comparar as duas strings caractere por caractere da frente para trás (compare de acordo com o valor do código ASCII), até que caracteres diferentes apareçam ou encontrem '\ 0 '.. Se todos os caracteres são iguais, eles são considerados iguais; se houver caracteres diferentes, o resultado da comparação do primeiro caractere diferente deve prevalecer (Nota: Se uma string encontrar '\ 0', e outro caractere Se a string não tiver encontrado '\ 0', o primeiro é menor que o último).

Mas às vezes, quando comparamos o tamanho das strings, esperamos ignorar o tamanho das letras. Por exemplo, "Hello" e "hello" são iguais ao ignorar as maiúsculas e minúsculas. Escreva um programa para comparar o caso de duas strings, ignorando o caso das letras.

Formato de
entrada A entrada é de duas linhas, uma sequência de caracteres por linha, duas sequências de caracteres no total. (Cada string tem menos de 80 comprimento e contém apenas letras maiúsculas e minúsculas)

Formato de saída
Se a primeira string for menor que a segunda string, produza um caractere "<";

Se a primeira string for maior que a segunda string, imprima um caractere ">";

Se as duas strings forem iguais, um caractere "=" será gerado.

Amostra de entrada

Hellohowareyou
helloHowareyou

Saída de amostra

=

Ideias

Ignore maiúsculas e minúsculas e compare os tamanhos de duas strings.

Se a primeira string for menor do que a segunda string, imprima um caractere "<";

Se a primeira string for maior que a segunda string, imprima um caractere ">";

Se as duas strings forem iguais, um caractere "=" será gerado.

Duas strings aeb podem ser definidas. Para a string de duas linhas fornecida, lemos um caractere e um caractere em cada linha, transformamos todas as letras maiúsculas em letras minúsculas e, em seguida, jogamos os caracteres processados ​​em Entre as strings que definimos, pode comparar as duas strings no final. (Nota: Strings em C ++ podem ser comparadas diretamente, e arrays de caracteres em linguagem C não podem ser comparados diretamente. A função strcmp () no arquivo de cabeçalho string.h deve ser usada).

C ++ código 1:

#include<iostream>
using namespace std;
int main()
{
    
    
	string a, b;		//定义字符串a,b
	char c;
	while(c = getchar())	//第一行中一个个地字符读取,放到字符串a
	{
    
    
		if(c == '\n') break;	//如果读到回车的话,就说明该行读取结束
		else if(c >= 'A' && c <= 'Z') c += 32;	//如果是大写字母的话,转换为小写字母。ASCII码表中每一个大写字母总是比对应的小写字母的值小32
		a.push_back(c);	//类似于python的函数使用,把字符变量c里面的字符放到字符串a的最后
	}
	while(c = getchar())	//第二行中一个个地字符读取,放到字符串b
	{
    
    
		if(c == '\n') break;	//如果读到回车的话,就说明该行读取结束
		else if(c >= 'A' && c <= 'Z') c += 32;//如果是大写字母的话,转换为小写字母。ASCII码表中每一个大写字母总是比对应的小写字母的值小32
		b.push_back(c);//类似于python的函数使用,把字符变量c里面的字符放到字符串b的最后
	}//字符串可以直接比较,直接比较输出即可
	if(a == b) cout << "=" << "\n";
	else if(a < b) cout << "<" << "\n";
	else cout << ">" << "\n";
	return 0;
}

C ++ código 2:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
	char str1[205], str2[205];
	while(cin >> str1 >> str2)
	{
    
    
		int len1 = strlen(str1);
		int len2 = strlen(str2);
		for(int i = 0; i < len1; i++)
		{
    
    
			if(i == 0)
			{
    
    
				if(str1[i] >= 97 && str1[i] <= 122) str1[i] -= 32;
			}
			else
			{
    
    
				if(str1[i] >= 65 && str1[i] <= 90) str1[i] += 32;
			}
		}
		for(int i = 0; i < len2; i++)
		{
    
    
			if(i == 0)
			{
    
    
				if(str2[i] >= 97 && str2[i] <= 122) str2[i] -= 32;
			}
			else
			{
    
    
				if(str2[i] >= 65 && str2[i] <= 90) str2[i] += 32;
			}
		}
		if(strcmp(str1, str2) < 0) cout << "<" << endl;
		else if(strcmp(str1, str2) > 0) cout << ">" << endl;
		else if(strcmp(str1, str2) == 0) cout << "=" << endl;
	}
	return 0;
}

Acho que você gosta

Origin blog.csdn.net/qq_44826711/article/details/113095640
Recomendado
Clasificación