Jump to content

isdigit


1Skull

Recommended Posts

Bom dia,

estou com um problema.

É o seguinte estou a tentar inserir um numero de telemovel válido, mas são preciso pelo menos dois if's, o primeiro para ver se é digito ou numero, mas o problema e que se eu inserir primeiro um numero e depois letras ele aceita, e o outro problema e que no strlen tem de ter 9 caracteres, mas aí ele aceita qualquer letra, se alguem me poder dar umas luzes ou uns tópicos, para desenvolver esta parte obrigado.

int main(int argc, char *argv[]){
 char c, str[9];
 printf ("Insira o numero de telemovel: ");
 scanf("%s",&c);
 if(isdigit(c)!=0){
   printf ("Insira o numero de telemovel: ");
   scanf("%s",&str);
   if(strlen(str)==9){
     printf ("O numero e %s",str);
   }else{
     printf("erro");
   }
 }else{
   printf("erro");
 }
return(0);
}

Só falta saber como inserir os numeros válidos.

Obrigado

Link to comment
Share on other sites

Primeiro que tudo: usa fgets() para obter input interactivo dum utilizador.

Usar scanf() pode nao ter a seguranca necessaria além de ocasionar erros com ENTERs e espaços em branco.

Depois de teres uma string válida (obtidacom fgets()), verifica cada elemento isoladamente com isdigit(). Alem disso deves verificar o numero na globalidade: há combinações de digitos que nao fazem numeros de telefone, por exemplo: 237<QUALQUERCOISA>

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Link to comment
Share on other sites

transformar um inteiro num char

char c;
int i = 5;

// método 1
c = '0' + i;

// método 2
fprintf(&c, "%d", i);

// metodo 3
itoa(i, &c, 10);

nota que isto é só para dígitos, para números com mais de um dígito, tens de ter uma string e usar o o método 2 ou o método 3

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.