Caso String insensível em comparação em C ++

Caso String insensível em comparação em C ++
A comparação tem sido um conceito muito conhecido e mais usado em muitos campos. Quando se trata de linguagens de programação, costumávamos comparar números na maioria das vezes. Mas esse não é o caso em todas as linguagens de programação. Algumas das linguagens de programação como C ++ nos oferecem a oportunidade de comparar os valores do tipo de string também. Isso pode ser feito ignorando a sensibilidade da caixa dessas cordas usando alguns métodos internos. Assim, dentro do artigo de nosso hoje, discutiremos esses métodos para fazer uma comparação insensível de casos de string em c++. Então, vamos começar abrindo o Ubuntu 20.04 Console do terminal via “ctrl+alt+t”.

Exemplo 01: Usando o método STRCASECMP

Aqui começamos nosso primeiro exemplo criando um arquivo que deve conter a extensão C ++. A consulta de toque foi utilizada para esse propósito específico. Depois disso, um usuário precisa abrir o arquivo recém -criado para adicionar algum código a ele. Um usuário pode utilizar qualquer editor interno do Ubuntu 20.04 como vim, texto ou editor de nano. Então, estamos utilizando o editor de nano aqui, de acordo com a nossa facilidade e edição rápida. Então, a palavra -chave "nano" é usada aqui para abrir o "caso.Arquivo CC ”no editor de nano. Seu arquivo será aberto no editor vazio.

Iniciamos o código C ++ com alguns arquivos de cabeçalho exclusivos e necessários. Esses arquivos de cabeçalho estão sendo incluídos usando a palavra -chave "incluir" com o sinal de hash. Os arquivos do cabeçalho incluem o cabeçalho do fluxo "input-output", cabeçalho "string" e cabeçalho "cString" para utilizar o método strcaSecmp () no código. O espaço para nome padrão é essencial para usar ainda mais as cláusulas Cout e CIN no código. O método principal () está em andamento com a inicialização de duas variáveis ​​de tipo de string s1 e s1, com alguns valores de string nele. Você pode ver que ambas as cordas obtiveram quase os mesmos valores com uma pequena insensibilidade ao caso. A instrução "se" é usada aqui para comparar duas variáveis ​​de string s1 e s2.

A função "strcaSecmp ()" foi usada na instrução "se" e leva as duas variáveis ​​de string s1 e s2 para serem comparadas. Esta função ignorará o caso deles e verificará se as duas seqüências são correspondidas ou não usando um byte único ao mesmo tempo através do método "c_str ()". Se o byte de S1 corresponder com o mesmo byte de lugar da String S2, ele retornará 0. Na última. Portanto, a declaração "se" executará a primeira declaração "cout" mostrando que ambas as strings são correspondidas. Caso contrário, a outra parte da declaração "se" será executada e exibirá que as strings não são correspondidas. A cláusula de retorno simplesmente terminará o método principal () aqui. Nosso programa está concluído aqui. Vamos salvá -lo rapidamente com o atalho "Ctrl+S" e desistir com o "Ctrl+X". Esta é uma etapa necessária antes de ir para a fase de compilação e execução.

Agora que o arquivo foi salvo e estamos de volta ao terminal, é hora de compilá -lo rapidamente. Para a compilação de qualquer arquivo C ++ no Ubuntu 20.04, você precisa de um compilador "g ++". Se você não tiver um, tente instalá -lo com o pacote "apt". Caso contrário, seu código não resultará da maneira como deveria. Então, nós compilamos o “caso.Arquivo CC ”com o compilador“ G ++ ”, que foi bem -sucedido. Depois disso, o último passo foi a execução deste arquivo compilado. Isso foi feito com a ajuda de um “./a.OUT ”instrução. Temos a mensagem "Strings correspondida ...", pois as cordas S1 e S2 são iguais em comparação, mas diferentes no caso deles.

Exemplo 02: Usando o método strncasecmp

Vamos dar outro exemplo semelhante de comparar duas seqüências insensíveis de casos em C++. Desta vez, estaremos utilizando o método "strncasecmp ()" em vez do "strcaSecmp ()" função semelhante. Ambos funcionam de maneira semelhante, mas o método "strncasecmp ()" funciona de maneira um pouco diferente. Esta função leva 3 argumentos enquanto o método "strcaSecmp ()" leva 2 como fizemos no primeiro exemplo. O código é semelhante ao primeiro código de exemplo com uma pequena alteração em duas posições. A primeira mudança foi feita no valor do S2 de segunda linha, onde acabamos de mudar a posição de um conteúdo de string conforme nosso desejo. A segunda alteração foi feita na instrução "se" em que adicionamos o terceiro parâmetro na função "strncasecmp ()" método. Este parâmetro leva um valor inteiro para especificar o número de caracteres de ambas as strings a serem correspondidas ou comparadas, i.e., Primeiro 5. Isso significa que apenas os 5 primeiros caracteres de ambas as cordas serão comparados, e o resultado será gerado de acordo com isso.

Se a comparação tiver sucesso e as duas cordas tiveram os mesmos personagens ignorando sua sensibilidade ao caso, ele retornará 0 e a primeira declaração de cout será executada. Caso contrário, a próxima cláusula Cout será executada. Vamos salvar com o atalho "Ctrl+S" e desistir do arquivo com "Ctrl+X" para retornar ao terminal. Agora, é a nossa vez para a compilação.

Após a compilação, o comando de execução mostra que as cordas não são correspondidas porque os 5 primeiros caracteres de ambas as strings são diferentes.

Exemplo 03: Usando o método Compare ()

Vamos ter nosso último, mas não o menor método para comparar duas seqüências insensíveis de casos em c++. O código foi iniciado com os arquivos de cabeçalho, eu.e., iostream e algoritmo. O iostream é usado para o fluxo de entrada e saída, mas o cabeçalho "algoritmo" é utilizado para usar o método compare () e transform () no código corretamente. Após os cabeçalhos, o espaço de nome padrão é utilizado como necessário para o uso de "Cout" e "Cin" cláusulas para exibir e obter a entrada. Em seguida, iniciamos nossa função principal () do tipo de retorno inteiro. Está inicializando duas variáveis ​​do tipo string s1 e s2. Ambas.

O método "Transform ()" foi aplicado a ambas as cordas, S1 e S2, para convertê -las em maiúsculas usando a função "toupper ()" do início ao fim. Após a conversão, o método "compare ()" foi usado na declaração "se" para verificar se a string s1 é igual a s2. Se a comparação de cada byte de personagem no mesmo local de ambas as cordas retornar 0, significa que ambos são semelhantes. Então, ele executará a primeira declaração "cout" dizendo que as cordas são correspondidas. Caso contrário, a declaração da parte "cout" será executada, mostrando que as seqüências. O código é concluído aqui.

Após a compilação e execução do arquivo de código, temos a mensagem "Strings correspondida ...". Ambas as cordas se tornaram as mesmas depois de serem convertidas para a caixa superior.

Conclusão:

Este artigo é o seu melhor para explicar a sequência insensível do caso em comparação na linguagem C ++. Usamos as três funções diferentes em nossos exemplos para alcançar essa funcionalidade i.e.strcasecmp (), strncasecmp (), transform () e compare (). Todos os exemplos são implementados no Ubuntu 20.04 sistema e são igualmente executáveis ​​em outras distribuições Linux. Esperamos que você ache este artigo bastante útil enquanto aprende C++.