Ir para conteúdo
Fórum Script Brasil

Creeklear

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Posts postados por Creeklear

  1. Em ‎26‎/‎03‎/‎2018 at 15:08, Gabriel Custodio disse:

     Olá, se entendi bem sua pergunta, você deseja digitar "Oi tudo bem?", e espera uma resposta como "Tudo bem!" 

     Para a linguagem C podemos fazer isso de algumas maneiras, uma delas é utilizando a função "strcmp".

     A função "strcmp()" compara os chamados "strings" entre si, "strings" nada mais são que um conjunto de caracteres que formão palavras ou frases.

     Para utiliza-la, primeiramente devemos declarar 2 variaveis (as strings),  deste modo:

    
    char str1[] = "Oi tudo bem?";
    char str2[30];

     Enfim, tendo declarado as 2 variaveis, devemos agora lêr a "string" a ser comparada da seguinte forma:

    
    scanf("%s", str2);

     O %s faz a leitura de uma "string", porem normalmente  a "string" é interrompida nos "espaços",  para resolver esse problema devemos incluir o comando [^\n] entre a porcentagem e o s da seguinte forma:

    
    scanf("%[^\n]s", str2);

     Desta forma, tudo que for digitado até o pressionamento do "ENTER" será computado.

     Após esse passo devemos utilizar uma condicional junto com a função "strcmp()", para que se o usuário digite "Oi tudo bem",  e receba a resposta "Tudo bem!"

     Faremos isso desta forma:

    
     if(strcmp(str1,str2) == 0)
            printf("Tudo bem!");
    
        else
            printf("não entendi!");

    Para entendermos o código acima devemos entender um pouco mais como a função "strcmp" funciona:

     A função strcmp() pode retornar um valor nulo (zero), positivo ou negativo.
     Quando as palavras comparadas são iguais, a função retorna 0.
     Quando as palavras comparadas são diferentes e a primeira é maior, a função retorna um valor positivo, caso contrário, a função 
    retorna negativo, sendo que no alfabeto a “menor” letra é “a”, e a maior, “z”.

    Exemplos:

    strcmp(maior,menor) == 1                                                            strcmp(“bb”,”aa”) == 1
    strcmp(menor,maior) == -1                                                          strcmp(“aa”,”bb”) == -1
    strcmp(grande,grande) == 0                                                        strcmp(“bb”,”bb”) == 0
    strcmp(pequeno,pequeno) == 0                                                  strcmp(“aa”,”aa”) == 0

     então oque foi feito na condição If, foi dizer que se as 2 strings forem iguais ele ira dizer "Tudo bem!", senao ele dirá "não entendi!".

     O codigo final ficara assim:

    
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
        char str1[] = "Oi tudo bem?";
        char str2[30];
    
        scanf("%[^\n]s", str2);
    
        if(strcmp(str1,str2) == 0)
            printf("Tudo bem!");
    
        else
            printf("não entendi!");
    }

    É bastante importante lembrar que para usar este tipo de função é necessário o uso da biblioteca <string.h>
     

    Nossa cara vlw muito obrigado mesmo, eu fiquei só com uma dúvida: essa função quando compara as duas strings, mesmo que a string enviada pelo usuário seja uma frase maior que a constante definida, mas possua dentro dessa frase algo que está na outra string ela considera como igual ?

    Como por exemplo envio: "Oi tudo bem com você?"

    e a constante seja "tudo bem". Só de ter "tudo bem" na string ele a considera ?

  2. Teria como alguém me mostrar um caminho para um código que identifique frases no texto, por exemplo eu envio um texto assim "Oi tudo bem?" daí eu teria que salvar toda essa frase em uma variável ? E logo depois a partir dessa frase eu tenha colocado que se houver "tudo bem?" no texto voltar com um resultado de "tudo bem". Alguém poderia me mostrar um caminho para isso, não quero o código, exceto se for para exemplo. Desde já obrigado :)

×
×
  • Criar Novo...