rickfelix Posted April 25, 2009 at 07:39 PM Report #259076 Posted April 25, 2009 at 07:39 PM Boas, Estou aqui com uma duvida, alguém me consegue ajudar a arranjar uma função que verifique se uma posição de uma string x é ou não um número? Não há nenhuma função no string.h Obrigado! 🙂
nata79 Posted April 25, 2009 at 08:19 PM Report #259079 Posted April 25, 2009 at 08:19 PM não há no string.h mas há no ctype.h a função isalnum mais informações na wikipedia: http://en.wikipedia.org/wiki/Ctype.h arithmeticoverflow.wordpress.com
rickfelix Posted April 25, 2009 at 09:06 PM Author Report #259085 Posted April 25, 2009 at 09:06 PM Não há mais nenhuma forma sem ser essa? Obrigado nata79
Baderous Posted April 25, 2009 at 09:18 PM Report #259087 Posted April 25, 2009 at 09:18 PM A função não é a isalnum, mas sim a isdigit. Podes tentar fazer manualmente. Tens de subtrair o caracter '0' ao valor que está na posição da string (consulta a tabela ASCII para perceberes). Se o resultado estiver entre 0 e 9 então é número, caso contrário não é.
rickfelix Posted April 25, 2009 at 09:23 PM Author Report #259088 Posted April 25, 2009 at 09:23 PM Obrigado pela ajuda Baderous, Mas eu não quero tentar subtrair valor á string, eu quero apenas verificar que cada um dos caracteres em cada uma das posições é um número. Podes dar-me um exemplo simples?
Baderous Posted April 25, 2009 at 09:34 PM Report #259091 Posted April 25, 2009 at 09:34 PM Mas para isso tens de fazer como eu te disse.
nata79 Posted April 25, 2009 at 10:49 PM Report #259103 Posted April 25, 2009 at 10:49 PM Obrigado pela ajuda Baderous, Mas eu não quero tentar subtrair valor á string, eu quero apenas verificar que cada um dos caracteres em cada uma das posições é um número. Podes dar-me um exemplo simples? a função isdigit (não a isalnum como tinha dito) recebe um caracter (elemento da string) e retorna 0 caso não seja um numero e diferente de 0 caso seja. exemplo: if(isdigit(s[i]) != 0) printf("%c é um numero", s[i]); arithmeticoverflow.wordpress.com
rickfelix Posted April 26, 2009 at 11:12 AM Author Report #259129 Posted April 26, 2009 at 11:12 AM Obrigado nata, já consegui por a funcionar com o resultado que queria! Obrigado! :-) 🙂
rickfelix Posted April 26, 2009 at 11:14 AM Author Report #259130 Posted April 26, 2009 at 11:14 AM bem eu até estou a usar if(isdigit(s[i])) *resto_do_código*
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