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.
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.