c – Quero mostrar na tela os caracteres capturados com a função fgets() inclusive o último que é inserido de forma automática por ela: ‘’ ou NULL

/*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 serah adicionado o elemento NULL (), 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 '' é 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 '', 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) != '')
    total++;
    return total;
}
int main(void) {
    char *str(256);
    printf("Senha? ");
    fgets(str, 256, stdin);
    printf("nEsta eh a senha que digitei: %sn",str);
    printf("nO comprimento da senha digitada eh: %dn",comprimento(str));
    if( strcmp(str,"abracadabra")==0 ){
        puts("Ok!");
}
    else {
        puts("Senha invalida!");
}
    return 0;
}```