/*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;
}>