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#include <iostream>
#include <cstdio>
#include <cstdlib>
using namespace std;
typedef char Number[10];
bool increase(Number number){
char *endptr;
int n
= strtol(number
, &endptr
, 10); if(*endptr != '\0')return false;
n = (n == 999999999)? 0 : ++n;
return true;
}
int main(){
Number testList[] = {"111", "-232", "2543GH49", "999999999",
"000002431", "015", "text", "123456789", "++49", "+100", ""};
Number *number = testList;
while(**number != 0){
cout << "increase(\"" << *number << "\") = ";
cout << boolalpha << increase(*number);
cout << ", " << "\"" << *number << "\"" << endl;
number++;
}
return 0;
}
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.