Ir para conteúdo
Fórum Script Brasil
  • 0

problema com funcao q retorna char


luiz eduardooo

Pergunta

Eu criei uma funcao para proibir q o cara coloque um numero num char, a funcao pega o tamanho do char, e ela poem o q foi digitado na variavel, e so deixa continuar ate q o digitado contenha apenas letras. So q ta dando erro na compilacao de incompatibilidade de tipos na linha do y=protecao_var(y); e na linha do return a; que aparece a msg "return-statement". A parte do codigo com os erros:

void insere(celula *i) {
void protecao_var(char* a);
int protecao_int(int a);
int x;
printf("Digite o valor: ");
x=protecao_int(x);
char y[100];
printf("Digite o nome: ");
y=protecao_var(y);
   celula *nova;
   nova=(celula *)malloc(sizeof(celula));
   nova->conteudo = x;
   nova->nome = y;
   nova->prox = i->prox;
   i->prox=nova;
}


void protecao_var(char* a){
int tamanho,achou=1;
while (achou!=0) {
scanf ("%[^\n]", &a);
tamanho=strlen(a);
achou=0;
for (int i=0;i<tamanho;i++) if (isdigit(a[i])) achou++;
if (achou!=0) printf("Caracteres invalidos, utilize apenas letras.\n");
fflush( stdin );
}
return a;
}

acho q é essa declaracao da funcao protecao_var, vi milhares de maneiras de declarar um funcao q retorna um char, fiquei testando e nenhuma dava certo.c é mt complicado....

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

É só prestar atenção no que você está fazendo...

void insere(celula *i) {
void protecao_var(char* a);
....


void protecao_var(char* a){
....
return a;
}

vi milhares de maneiras de declarar um funcao q retorna um char, fiquei testando e nenhuma dava certo.c é mt complicado....

Se a função está declarada corretamente e o tipo de retorno não é conflitante, o compilador não reclama. Isso não torna C complicado, porque é assim em qualquer linguagem sem tipagem dinâmica.

E não use fflush(stdin). Procure outro jeito de limpar o buffer.

Editado por C/C++ nuts
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...