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

Cortar string y converitrlo a un entero

Estas en el tema de Cortar string y converitrlo a un entero en el foro de C/C++ en Foros del Web. Hola buenas, Necesito que apartir de una serie de numeros separados por espacios en un string, me corte por cada espacio que haya y me ...
  #1 (permalink)  
Antiguo 18/09/2007, 07:40
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 20 años
Puntos: 2
Cortar string y converitrlo a un entero

Hola buenas,

Necesito que apartir de una serie de numeros separados por espacios en un string, me corte por cada espacio que haya y me los devuelva separados en variables, en un array o en lo que sea, despues lo que queria es convertir los strings que contienen los numeros en enteros..

¿Podriais decirme que funciones puedo utilizar?Si es posible hacerlo de una manera mas corta os agradeceria que me lo dijerais. Lo que necesito en resumen es que el usuario me indique una serie de numeros (son bastantes) separados por algun caracter(he pensado en el espacio), entonces, con esa serie ya recogida separar todos los numeros para poder trabajar con ellos por separado..

Un saludo y gracias!

P.D: Es para crear un programa que solucione sudokus, en principio lo quiero hacer desde cero por mi mismo, no quiero mirar ningun codigo fuente de internet que seguro que hay, si no me queda mas remedio lo hare.. pero de momento prefiero hacerlo yo. Llevo 1 mes escaso "programando" en C/C++, ¿os parece un porgrama complicado para llevar tan poco tiempo?
__________________
La chapucería de la esquina
  #2 (permalink)  
Antiguo 18/09/2007, 09:07
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: Cortar string y converitrlo a un entero

la funcion atoi convierte de ASCII a int, pero solo puede tomar un parametro, por lo que tendrias que separar los numeros, para eso puedes usar un ciclo que vaya contando cuantos numeros se han almacenado, y que ejecute la funcion cada vez que se tope con un espacio. Para almacenar los numeros podrias irlos guardando en un arreglo cuyo tamaño dependera de cuantos numeros necesites. Como es un sudoku me imagino que dicho arreglo nunca exedera los 81 caracteres.
  #3 (permalink)  
Antiguo 19/09/2007, 03:36
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 20 años
Puntos: 2
Re: Cortar string y converitrlo a un entero

Buenas,

Me ha quedado todo claro excepto:
Cita:
y que ejecute la funcion cada vez que se tope con un espacio
Como hago para saber si hay un espacio o no en el string?

Un saludo y gracias..
__________________
La chapucería de la esquina
  #4 (permalink)  
Antiguo 19/09/2007, 14:18
 
Fecha de Ingreso: septiembre-2006
Mensajes: 328
Antigüedad: 18 años, 4 meses
Puntos: 3
Re: Cortar string y converitrlo a un entero

De la misma forma en que tomaras los numeros, usando la funcion getchar ();

char letra;
int num;

while (letra != "\n") {
letra=getchar ();
if (getchar != " ") { num= atoi (letra) }

Claro, esto es mas para la explicacion y necesitaria muchos cambios para realmente hacer algo funcional, solo lo puse para que veas como examinarias si es un espacio y que hacer cuando no lo sea.
  #5 (permalink)  
Antiguo 19/09/2007, 20:58
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Re: Cortar string y converitrlo a un entero

Cita:
Iniciado por pedro_cesar Ver Mensaje
De la misma forma en que tomaras los numeros, usando la funcion getchar ();

char letra;
int num;

while (letra != "\n") {
letra=getchar ();
if (getchar != " ") { num= atoi (letra) }

Claro, esto es mas para la explicacion y necesitaria muchos cambios para realmente hacer algo funcional, solo lo puse para que veas como examinarias si es un espacio y que hacer cuando no lo sea.
Eso esta lejos de funcionar. Como dice él, hay que hacerle cambios para que por lo menos funcione.

Cita:
char letra;
int num;
do {
letra=getchar();
if(letra != ' ' && letra !='\n')
{
num= atoi (letra);
}
}while(letra!='\n');
Este codigo aunque un poco rustico, s, por lo menos, funcional.
  #6 (permalink)  
Antiguo 20/09/2007, 12:01
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 20 años
Puntos: 2
Re: Cortar string y converitrlo a un entero

Buenas,

Bueno es que yo para recoger los numeros utilizo std::cin, almenos asi me lo han enseñado.. esta bien hacerlo asi?

Un saludo..
__________________
La chapucería de la esquina
  #7 (permalink)  
Antiguo 20/09/2007, 17:35
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Re: Cortar string y converitrlo a un entero

Si. Hay un metodo de cin que hace exactamente lo mismo que getchar(). No recuerdo cual es.

Saludos
  #8 (permalink)  
Antiguo 24/09/2007, 11:47
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 20 años
Puntos: 2
Re: Cortar string y converitrlo a un entero

Hola buenas,

Cita:
char letra;
int num;
do {
letra=getchar();
if(letra != ' ' && letra !='\n')
{
num= atoi (letra);
}
}while(letra!='\n');
He probado ese codigo y me da los siguientes errores en mi Dev C++:
- In function `int main()':
- 13 invalid conversion from `char' to `const char*'
- 13 initializing argument 1 of `int atoi(const char*)'

Nose que significan porque nunca he utilizado atoi.. si m epodeis hechar una mano..

Un Saludo y gracias!

P.D: inclui la libreria stdlib.h en el codigo
__________________
La chapucería de la esquina
  #9 (permalink)  
Antiguo 24/09/2007, 13:08
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Re: Cortar string y converitrlo a un entero

Mmmm. No deberia darte esos errores, ya que seria impractico que la funcion atoi solo aceptara cadenas constantes.

En todo caso intenta hacer un casting, a ver que sucede.

atoi(const chat)letra);

Saludos
  #10 (permalink)  
Antiguo 25/09/2007, 01:40
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 7 meses
Puntos: 74
Re: Cortar string y converitrlo a un entero

El problema no es que no acepte cadenas constantes sino que no acepta CARACTERES sino CADENAS. letra es un solo caracter y atoi necesita un cadena de caracteres (char * - const -).
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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




La zona horaria es GMT -6. Ahora son las 18:12.