Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Suma de cadenas en c?

Estas en el tema de Suma de cadenas en c? en el foro de C/C++ en Foros del Web. Saludos Tengo un Pequeño problema, el cual es pasar una cadena de caracteres a numeros, he probado con la funcion "atoi", pero al ponerle indice ...
  #1 (permalink)  
Antiguo 17/11/2011, 18:11
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Suma de cadenas en c?

Saludos Tengo un Pequeño problema, el cual es pasar una cadena de caracteres a numeros, he probado con la funcion "atoi", pero al ponerle indice a la cadena el programa deja de funcionar, les paso el codigo:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio2.h>
  4. #include <math.h>
  5. #define p printf
  6. #define s scanf
  7.  
  8. main(){
  9. char vec[10];
  10. int num1[10],lon;
  11. int i=0;
  12.  
  13. fflush(stdin);
  14. p("Inserte una Serie de numeros\n");
  15. gets(vec);
  16. lon=strlen(vec);
  17. for(i=0;i<lon;i++)
  18. num1[i]=atoi(vec[i]);
  19.  
  20. for(i=0;i<lon;i++)
  21. p("%d\n", num1[i]);
  22. system("pause");
  23.  
  24. }

Alli no esta sumando, pero al saber como hacerlo, lo implementare.
  #2 (permalink)  
Antiguo 17/11/2011, 19:11
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Suma de cadenas en c?

la funcion atoi espera una cadena de caracteres. Ejemplo: "1235".
Vos al pasarle un indice le estas pasando un caracter simple '1'. Son dos tipos de datos distintos.

Ahora la pregunta es, que es lo que estas queriendo hacer. Transformar una cadena de este estilo a enteros: "123 456 789"??

Saludos
  #3 (permalink)  
Antiguo 17/11/2011, 19:24
 
Fecha de Ingreso: enero-2011
Mensajes: 33
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Suma de cadenas en c?

Eso es correcto, la idea es pasar cada uno de los numeros de la cadena a entero, ejemplo "12345" a "1,2,3,4,5"... Pero en la funcion atoi me da error con el indice... la idea de eso es el sumar cada 1 de los numeros de la cadena...
  #4 (permalink)  
Antiguo 17/11/2011, 19:46
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Suma de cadenas en c?

Vos queres sumar solamente los digitos??

Código C:
Ver original
  1. for(i=0;i<strlen(cadena);i++) suma +=  cadena[i] - '0';
  #5 (permalink)  
Antiguo 17/11/2011, 19:54
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: Suma de cadenas en c?

tambien podrias hacer vec[i] -48, y ya te da el valor de tal aunque esto es mas trampa pero funciona jeje

Ejemplo viendo la tabla:
http://www.asciitable.com/
el numero 1 = 49, entonces si le restamos los 48
49 - 48 = 1
Y listo y si es el nose am 8 = 56
56 - 48 = 8

Esto es un poco de trampa , pero funciona para lo que deceas n_n, y no ocupas hacer lo de ahi del vector num1, ya que puedes ir sumandolo en otra variable automaticamente y ya.

Etiquetas: cadenas, funcion, numeros, programa, suma
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:17.