[C con Clase] ¿ isdigit() ?
Steven Richard Davidson
stevenrichard.davidson en gmail.com
Mie Dic 12 11:43:09 CET 2007
Hola Pierre,
On Dec 12, 2007 2:03 AM, Pierre van der Laat Ulate <pierre1 en racsa.co.cr> wrote:
> ¿Como se usa la función "int isdigit(int c)" si lo que se quiere es verificar
> si un arreglo de caracteres NO SON dígitos?
> es decir:
>
> char caracteres[10];
> if(isdigit(caracteres)!=0)
> {
> ...
> }
>
> Recuerden que pertenece a la librería "ctype", y devuelve 0 si son dígitos...
>
Tienes algunos errores. Primero, 'isdigit()' no acepta una cadena de
caracteres como parámetro. De hecho, tú mismo has escrito su
prototipo:
int isdigit( int c );
Como puedes ver, se acepta un número entero, y no una cadena de caracteres.
En segundo lugar, si el carácter representa un dígito, entonces
retorna un número entero diferente a 0. Por ejemplo,
char car;
cin >> car;
cout << "El carácter ";
if( !isdigit( car ) )
cout << "no ";
cout < "representa un dígito";
Sugiero consultar la referencia de las funciones y macros de <cctype>
en nuestra página. El enlace es:
http://c.conclase.net/librerias/libreria.php?lib=ctype
Para averiguar si todos los caracteres en una cadena representan
dígitos, tendrás que aplicar la misma macro a cada carácter. Es decir,
necesitarás un bucle para recorrer cada carácter y aplicar el criterio
que quieres.
Espero haber aclarado la duda.
Steven
Más información sobre la lista de distribución Cconclase