1Skull Posted May 25, 2013 at 12:26 PM Report #508971 Posted May 25, 2013 at 12:26 PM 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
AJBM Posted May 25, 2013 at 01:10 PM Report #508975 Posted May 25, 2013 at 01:10 PM (edited) Boas! tens que fazer um ciclo for que percorra a string e verifique em cada posição se é um digito ou uma letra. Edited May 25, 2013 at 01:10 PM by AJBM
pmg Posted May 25, 2013 at 04:40 PM Report #508983 Posted May 25, 2013 at 04:40 PM 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!
1Skull Posted May 30, 2013 at 04:51 PM Author Report #509958 Posted May 30, 2013 at 04:51 PM ja resolvi o problema só existe outro é que eu estou a por os valores para um vetor de inteiros e como o isdigit so funciona com char, gostaria de saber se existe alguma maneira de transformar um inteiro num char passar o valor 9 por exemplo que esta na var1, para a var2 que é um char.
HappyHippyHippo Posted May 30, 2013 at 04:57 PM Report #509963 Posted May 30, 2013 at 04:57 PM 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 Portugol Plus
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now