Una cosilla....has de incluir también el 48 y el 57.
Entonces puedes hacer así:
o así:
Por otro lado, pienso que es mejor evaluar primero si es false, y luego tratar la cadena si son todos los caracteres numéricos.
Entonces puedes hacer así (buscar la condición contraria):
Código C++:
Ver originalif(!(numero[i]>=48 && numero[i]<=57))
o su equivalente:
O plantear la cuestión en si los números están fuera del rango
Sería ver si el número es menor de 48 O mayor de 57 ( su equivalente con menor-igual y mayor-igual)
Resumiendo:
La cadena es true si:
Código C++:
Ver originalnumero[i]>47 && numero[i]<58//seran validos desde el 48 hasta el 57 inclusive
o
Código C++:
Ver originalnumero[i]>=48 && numero[i]<=57//seran validos desde el 48 hasta el 57 inclusive
y false si
Código C++:
Ver originalnumero[i]<48 || numero[i]>57//seran NO validos desde el 0 hasta el 47 y desde el 58 hasta el final
ó
Código C++:
Ver originalnumero[i]<=47 || numero[i]>=58//seran NO validos desde el 0 hasta el 47 y desde el 58 hasta el final
(esta forma es la que tiene menos sentido)
Es importante saber usar los operadores AND y OR en los intervalos que quieras considerar, y no olvidarse de los límites de esos intervalos.
Y por último, esto es equivalente a esto:
Considera la condición en la forma que te sea más cómoda, pero empieza evaluando si es false, no si es true.
Saludos!