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

Problema con atoi

Estas en el tema de Problema con atoi en el foro de C/C++ en Foros del Web. Hola! Tengo una cadena de caracteres y he copiado un trozo de ella en otra que he creado.Lo que quiero obtener es el numero entero ...
  #1 (permalink)  
Antiguo 22/04/2010, 09:25
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 3 meses
Puntos: 2
Problema con atoi

Hola! Tengo una cadena de caracteres y he copiado un trozo de ella en otra que he creado.Lo que quiero obtener es el numero entero de la nueva cadena, utilizando la funcion atoi(no se si se habra otra manera).Os pongo el ejemplo:

Código:
  cadena_horas[2];
  cadena_minutos[2];
  int horas, minutos; 
  cadena_horas[0]=trama[indice];
  cadena_horas[1]=trama[indice+1];
  cadena_minutos[0]=trama[indice+2];
  cadena_minutos[1]=trama[indice+3];
  horas=atoi(cadena_horas);
  minutos=atoi(cadena_minutos);
  printf("Cadena_hora: %c%c\n", cadena_horas[0], cadena_horas[1]);
  printf("Cadena_minutos: %c%c\n", cadena_minutos[0], cadena_minutos[1]);
  printf("Hora: %d Minutos: %d\n", horas, minutos);
la cadena de caracteres que paso a la funcion es trama, y creo "cadena_horas" y "cadena_minutos" para copiar cada dato en su respectivo sitio.Indice se lo paso tambien como parametro.
Esto es lo que me imprime:
Código:
aa0010[Onda 3][serie][Encontrados]1730006066660733365a55
Cadena_hora: 17
Cadena_minutos: 30
Hora: 17 Minutos: 3017
La primera linea es la cadena de caracteres "trama", y lo subrayado es lo que estoy intentado copiar.Parece como si la fucnion atoi se quedara con el valor de horas y se lo copiara tambien a minutos ¿Alguna solucion?
  #2 (permalink)  
Antiguo 22/04/2010, 09:52
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 11 meses
Puntos: 61
Respuesta: Problema con atoi

Aumenta el tamaño de los arreglos de caracteres a 3, para que puedas poner un caracter 0 al final de ellos.
Luego cuando copies hacia el arreglo, pon el cero al final, o sea:
Código C:
Ver original
  1. char cadena[3];
  2. // ..
  3. cadena[0] = trama[4];  // o lo que sea que te interese copiar
  4. cadena[1] = trama[5];  // o lo que sea que te interese copiar
  5. cadena[2] = '\0';  // <-- lo nuevo

luego atoi() funcionará como esperas.
Ahora no funciona pues no le estas pasando lo que atoi espera, que es un arreglo unidimensional de caracteres que terminen en un 0 ASCII.
  #3 (permalink)  
Antiguo 22/04/2010, 09:59
 
Fecha de Ingreso: enero-2006
Mensajes: 94
Antigüedad: 18 años, 3 meses
Puntos: 2
Respuesta: Problema con atoi

siii! muchisimas gracias CalgaryCorpus, FUNCIONA!

Etiquetas: Ninguno
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 08:35.