Crie um programa que compara duas strings (nao use a funcão strcmp).

Passo 1

Beleza, vamos lá! A gente tem que criar um programa que compara duas strings, mas sem usar a função strcmp. Isso tá dentro da matéria de programação, especificamente trabalhando com manipulação de strings. Para resolver isso, vamos precisar entender como as strings são armazenadas e como podemos comparar caractere por caractere.

Passo 2

Primeiro, precisamos lembrar que uma string é basicamente uma sequência de caracteres terminada por um caractere especial, geralmente o \0. Para comparar duas strings sem strcmp, vamos verificar se elas têm o mesmo comprimento e se cada caractere correspondente é igual.

Passo 3

Vamos começar escrevendo uma função que recebe duas strings como entrada. Essa função vai percorrer cada caractere das duas strings e comparar um por um. Se encontrar algum caractere diferente ou se uma das strings terminar antes da outra, a gente já sabe que as strings são diferentes.

Passo 4

Dentro da função, vamos usar um laço while que continua enquanto os caracteres das duas strings forem iguais e nenhum dos dois alcançou o final (\0). Se o laço terminar e ambos os caracteres finais forem \0, significa que as strings são iguais. Caso contrário, são diferentes.

Passo 5

Agora, vamos implementar isso em código. Vou usar a linguagem C como exemplo:
#include <stdio.h>

int compararStrings(char str1[], char str2[]) {
    int i = 0;
    while (str1[i] != '\0' && str2[i] != '\0') {
        if (str1[i] != str2[i]) {
            return 0; // Strings diferentes
        }
        i++;
    }
    if (str1[i] == '\0' && str2[i] == '\0') {
        return 1; // Strings iguais
    } else {
        return 0; // Strings de tamanhos diferentes
    }
}

int main() {
    char string1[100];
    char string2[100];
    
    printf("Digite a primeira string: ");
    fgets(string1, sizeof(string1), stdin);
    
    printf("Digite a segunda string: ");
    fgets(string2, sizeof(string2), stdin);
    
    // Remover o caractere de nova linha '\n' que o fgets adiciona
    string1[strcspn(string1, "\n")] = 0;
    string2[strcspn(string2, "\n")] = 0;
    
    if (compararStrings(string1, string2)) {
        printf("As strings são iguais.\n");
    } else {
        printf("As strings são diferentes.\n");
    }
    
    return 0;
}

Resposta

Pronto! Esse programa lê duas strings do usuário e as compara caractere por caractere sem usar a função strcmp. Se as strings forem iguais, ele informa que são iguais; caso contrário, diz que são diferentes.

Exercícios relacionados

Faça um programa que lê três palavras do teclado e imprime as três palavras na ordem inversa.
Implemente uma lista dinâmica de números positivos em que os números ímpares fiquem todos juntos no início da lista e os pares fiquem todos juntos no final da lista
e. Implemente a função LISTAR, que coloca na tela todos os elementos existentes.
Faça um código em para gerar 10 números aleatórios (entre 1 e 50 ) e armazenar em um vetor. Apresente os números gerados na tela e depois organize o vetor com o método de ordenação BubbleSort. Ao final, apresente o vetor ordenado.
Um amigo lhe diz que é capaz de ordenar qualquer conjunto de 6 números com no máximo 8 comparações. O seu amigo está falando a verdade ou mentindo? Justifique.