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

Problema al convertir una cadena de caracteres a entero sin signo

Estas en el tema de Problema al convertir una cadena de caracteres a entero sin signo en el foro de C/C++ en Foros del Web. Hola: El problema empieza aquí, mi numero viene en el primer argumento: Código: int main (int argc, char *argv[]){ unsigned int numero= (unsigned int )argv[1]-'0'; ...
  #1 (permalink)  
Antiguo 27/05/2011, 04:04
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 4 meses
Puntos: 5
Pregunta Problema al convertir una cadena de caracteres a entero sin signo

Hola:

El problema empieza aquí, mi numero viene en el primer argumento:

Código:
int main (int argc, char *argv[]){
          unsigned int numero= (unsigned int )argv[1]-'0';
Esto me funciona para cuando es solo un dígito, pero cuando son varios no me va, lo suyo sería sin librerías adicionales, sino de manera casera o a lo bruto o como le llaméis.

Gracias.
  #2 (permalink)  
Antiguo 27/05/2011, 10:10
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema al convertir una cadena de caracteres a entero sin signo

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main (int argc, char *argv[])
  5. {
  6.           int numero= atoi(argv[1]);
  7.  }
  #3 (permalink)  
Antiguo 28/05/2011, 02:17
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 4 meses
Puntos: 5
Respuesta: Problema al convertir una cadena de caracteres a entero sin signo

Gracias, pero ya eso lo sabía, y con la librería <stdlib.h> ya funciona, no hace falta la otra, dije que sin funciones, quiero sacarlo artesanalmente.
  #4 (permalink)  
Antiguo 28/05/2011, 16:43
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema al convertir una cadena de caracteres a entero sin signo

Código C:
Ver original
  1. atoi(char * cadena)
  2. {
  3.      int numero = 0, i = 0;
  4.      while (cadena != '\n' ) numero = numero * 10 + cadena[i++] - '0';
  5.      return numero
  6. }

Creo que con eso alcanza

Etiquetas: c++, caracteres, casting, int, unsigned, cadenas
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 16:38.