SJOS 0 Denunciar post Postado Março 30, 2008 #include <stdlib.h> #include <string.h> #include <ctype.h> #define MAX 50 main() { char str[MAX],ch,num[2]; int i,s=0; scanf("%s",str); for (i=0;i<strlen(str);i++) { ch=str[i]; if (isdigit(ch)) { num[0]=ch; s=s+atoi(num); }} printf ("%d\a",s); system ("pause"); } este algoritmo numeros de uma string, porém ele soma digito por digito. por exemplo: se digitar "xy10k2Aa32xx1001(2" ele fara 1+0+2+3+2+1+1+2=12 agora preciso fazer com que ele faça no caso de digitar esta mesma string 10+2+32+1001+2=1047, considerando assim os digitos que aparecem em sequência como um unico numero. se alguém tiver alguma ideia de com faço isto por favor me ajude... Compartilhar este post Link para o post Compartilhar em outros sites
naofuieu 0 Denunciar post Postado Março 30, 2008 Cara, tu pode ir percorrendo a string e guardando os caracteres que são números até que algum deles não seja. Nesse momento, você sai multiplicando pelo valor relativo e somando no valor total. Tipo: 158az8 (1) guarda 1 (5) guarda 5 (8) guarda 8 (a) faz operação: 1*100+5*10+8*1 = 158 (z) pula z (8)guarda 8 ... Entendeu? Só que pra isso você vai precisar de um vetor do mesmo tamanho que o vetor onde você recebe a string, para o caso de todos os caracteres serem números. Compartilhar este post Link para o post Compartilhar em outros sites
SJOS 0 Denunciar post Postado Março 31, 2008 Cara, tu pode ir percorrendo a string e guardando os caracteres que são números até que algum deles não seja. Nesse momento, você sai multiplicando pelo valor relativo e somando no valor total. Tipo: 158az8 (1) guarda 1 (5) guarda 5 (8) guarda 8 (a) faz operação: 1*100+5*10+8*1 = 158 (z) pula z (8)guarda 8 ... Entendeu? Só que pra isso você vai precisar de um vetor do mesmo tamanho que o vetor onde você recebe a string, para o caso de todos os caracteres serem números. beleza vou tentar fazer desta forma, por enquanto obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
naofuieu 0 Denunciar post Postado Abril 1, 2008 Cara, tu pode ir percorrendo a string e guardando os caracteres que são números até que algum deles não seja. Nesse momento, você sai multiplicando pelo valor relativo e somando no valor total. Tipo: 158az8 ... beleza vou tentar fazer desta forma, por enquanto obrigado. De nada! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Qualquer coisa, posta aqui, vlw? http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites