• Matéria: Informática
  • Autor: Anônimo
  • Perguntado 8 anos atrás

Em linguagem C em strings como faço para saber se uma string digitada é igual a uma segunda string sem fazer o uso da função strcmp?

Respostas

respondido por: tiagobento38
0
#include <stdio.h>#include <stdlib.h>
int main(void){

        char palavra[] = "brainly";         char digitada[150];

        printf("Escreva a palavra: ");         scanf("%s",&digitada);

       if( compara(palavra, digitada) ){                    printf("As palavra sao iguais");        }else{                    printf("As palavras sao diferentes");        }}
int compara(char *p1, char *p2){
              //i para iterar, iguais se 1 verdadeiro se 0 falso               int i, iguais = 1;              
              //compara as palavras letra por letra               for(i = 0; i<strlen(p1); i++){                        //se encontra uma diferença, retorna 0                        if(p1[i] != p2[i]){                                     iguais = 0;                                     return iguais;                        }             }             //se não encontrou diferença retorna 1, são iguais             return iguais;}

Anônimo: não entendo muito bem sem uma tabulação
tiagobento38: Copia pra um editor e faz a tabulação.
Anônimo: nao entendi nada
tiagobento38: Dito da forma mais simples possivel: voce tem que comparar as duas palavras letra por letra.
tiagobento38: A letra 1 da palavra 1 é igual a letra 1 da palavra 2? A letra 2 da palavra 1 é igual a letra 2 da palavra 2? Repete isso pra cada letra, se pelo menos uma for diferente, as palavras não são iguais. Detalhe: como disse um colega aí, primeiro vê se as duas palavras tem o mesmo tamanho, se não tiverem, de cara não são iguais.
respondido por: jvsilvictorox7rfj
0
A lógica é bem simples...

primeiro você precisa comparar se o tamanho das strings são iguais. Se não forem, de cara as strings já são diferentes.

Se os tamanhos forem iguais basta você rodar um for (até o tamanho da string)comparando cada char de cada posição da string1 com a string2.

Se em alguma iteração houver um char (na mesma posição de ambas) que são diferentes, consequentemente as strings são diferentes.


Perguntas similares