Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SJOS

somar os numeros existentes em uma string

Recommended Posts

#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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.