[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