Ver Mensaje Individual
  #32 (permalink)  
Antiguo 19/06/2014, 06:24
fightmx
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 1 mes
Puntos: 22
Respuesta: Atascado con ejercicio.

El siguiente ejemplo es para mostrar otra forma de resolverlo simplemente utilizando la función estándar strtol (un post acerca de esta función aquí).

Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. typedef char Number[10];
  7.  
  8. bool increase(Number number){
  9.     char *endptr;
  10.     int n = strtol(number, &endptr, 10);
  11.     if(*endptr != '\0')return false;
  12.     n = (n == 999999999)? 0 : ++n;
  13.     sprintf(number, "%d", n);
  14.     return true;
  15. }
  16.  
  17. int main(){
  18.     Number testList[] = {"111", "-232", "2543GH49", "999999999",
  19.     "000002431", "015", "text", "123456789", "++49", "+100", ""};
  20.  
  21.     Number *number = testList;
  22.     while(**number != 0){
  23.         cout << "increase(\"" << *number << "\") = ";
  24.         cout << boolalpha << increase(*number);
  25.         cout << ", " << "\"" << *number << "\"" << endl;
  26.         number++;
  27.     }
  28.  
  29.     return 0;
  30. }

Para centrarse en el dominio de C y C++ es necesario el manejo de sus librerías, tanto para estudio como para resolver los problemas.

Saludos.