Comparar o comprimento da string é uma função comum na programação C, pois permite que você veja qual string contém mais caracteres. Isso é muito útil para classificar dados. Comparar strings requer uma função especial; não use! = ou ==.
Passos
Etapa 1. Existem duas funções que permitem comparar strings em C
Ambas as funções estão incluídas na biblioteca.
- strcmp () - Esta função compara duas strings e retorna a diferença comparativa no número de caracteres.
- strncmp () - É o mesmo que strcmp (), exceto que compara os primeiros n caracteres. É considerado mais seguro, pois ajuda a evitar o estouro de travamentos.
Etapa 2. Inicie o programa com as bibliotecas necessárias
Você vai querer as bibliotecas e, junto com quaisquer outras que você possa precisar para o seu programa específico.
#include #include
Etapa 3. Inicie um
int função.
Esta é a maneira mais fácil de aprender esta função, pois ela retornará um inteiro que compara o comprimento das duas strings.
#include #include int main () {}
Etapa 4. Defina as duas strings que deseja comparar
Para este exemplo, iremos comparar duas cadeias de caracteres char predefinidas. Você também desejará definir o valor de retorno como um número inteiro.
#include #include int main () {char * str1 = "apple"; char * str2 = "laranja"; int ret; }
Etapa 5. Adicione a função de comparação
Agora que você tem suas duas strings definidas, pode adicionar a função de comparação. Vamos usar strncmp (), então precisamos garantir que o número de caracteres a serem medidos seja definido na função.
#include #include int main () {char * str1 = "apple"; char * str2 = "laranja"; int ret; ret = strncmp (str1, str2, 6); / * Isso irá comparar as duas strings de até 6 caracteres * /}
Etapa 6. Use um
If … Else declaração para realizar a comparação.
Agora que a função está pronta, você pode usar uma instrução If… Else para exibir qual string é mais longa. strncmp () retornará 0 se as strings tiverem o mesmo comprimento, um número positivo se str1 for maior e um número negativo se str2 for maior.
#include #include int main () {char * str1 = "apple"; char * str2 = "laranja"; int ret; ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("str1 é mais longo"); } else if (ret <0) {printf ("str2 is mais"); } else {printf ("As duas strings são iguais"); } return (0); }