Ir ao conteúdo
  • Cadastre-se

MscMagoo

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. @devair1010 Muito Obrigado, Devair, por sua resposta e atenção, vai me ajudar entender melhor a linguagem C, grande abraço. @devair1010 @devair1010 Devair, só não entendi, por que com a função gets a senha "abracadabra" é achada sem problema e não apresenta a questão do "\n" e "\0" no final da string capturada (aquela que inseri via teclado, como sendo uma provável senha). Obrigado
  2. /*Primeira regra: construir o codigo abaixo em C com a funcao fgets e uma funcao propria denominada comprimento(), conforme codificação abaixo; Segunda regra: esse codigo deve mostrar sempre a resposta "Senha invalida", pois quando voce usa fgets() no final será adicionado o elemento NULL (\0), isso é para acontecer pois o objetivo do código é didático, sobre esse erro de logica, previsto quando você utiliza a função strcmp para achar a senha verdadeira que é "abracadabra" que nunca vai ser validada pelo erro proposital inserido nele; Terceira regra: ele irah mostrar um comprimento sempre maior que a cadeia de caracter que voce digitar, pois o caracter '\0' é contado também. Diante das regras acima, como faço para mostrar a cadeia de caracteres capturada pela função fgets(), inclusive o ultimo caracter da cadeia digitada, o NULL ou o caracter '\0', colocado de forma automatica pela função fgets().*/ #include <stdio.h> #include <string.h> /*Funcao que conta o numero de caracteres da string digitada, inclusive o caracter "NULL" inserido automaticamente no final dela*/ int comprimento(char *str) { int total=0; while( str[total] != '\0') total++; return total; } int main(void) { char *str[256]; printf("Senha? "); fgets(str, 256, stdin); printf("\nEsta eh a senha que digitei: %s\n",str); printf("\nO comprimento da senha digitada eh: %d\n",comprimento(str)); if( strcmp(str,"abracadabra")==0 ){ puts("Ok!"); } else { puts("Senha invalida!"); } return 0; } /*Primeira regra: construir o codigo abaixo em C com a funcao fgets e uma funcao propria denominada comprimento(), conforme codificação abaixo; Segunda regra: esse codigo deve mostrar sempre a resposta "Senha invalida", pois quando voce usa fgets() no final será adicionado o elemento NULL (\0), isso é para acontecer pois o objetivo do código é didático, sobre esse erro de logica, previsto quando você utiliza a função strcmp para achar a senha verdadeira que é "abracadabra" que nunca vai ser validada pelo erro proposital inserido nele; Terceira regra: ele irah mostrar um comprimento sempre maior que a cadeia de caracter que voce digitar, pois o caracter '\0' é contado também. Diante das regras acima, como faço para mostrar a cadeia de caracteres capturada pela função fgets(), inclusive o ultimo caracter da cadeia digitada, o NULL ou o caracter '\0', colocado de forma automatica pela função fgets().*/ #include <stdio.h> #include <string.h> /*Funcao que conta o numero de caracteres da string digitada, inclusive o caracter "NULL" inserido automaticamente no final dela*/ int comprimento(char *str) { int total=0; while( str[total] != '\0') total++; return total; } int main(void) { char *str[256]; printf("Senha? "); fgets(str, 256, stdin); printf("\nEsta eh a senha que digitei: %s\n",str); printf("\nO comprimento da senha digitada eh: %d\n",comprimento(str)); if( strcmp(str,"abracadabra")==0 ){ puts("Ok!"); } else { puts("Senha invalida!"); } return 0; }>

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!