validacion

marceladiaz
07 de Mayo del 2004
como identificar en un string; caracter por caracter si este es un digito, letra o un signo.
y como puedo saber la longitud de una cadena.

Gracias

chino
07 de Mayo del 2004
Hola no soy un maestro en programar, pero igual cacho algo de cadenas, la longitud de una cadena la vez con la funcion srtlen de la libreria<string.h> este es su prototipo: size_t strlen(const char *cad) y llamas la funcion así:
ejemplo

char cad[80];
strcpy(cad,"HOLA");/*esta funcion esta en string.h y copia cadenas en un avariable cadena*/
cout<<strlen(cad);//Largo dinamico 4

Lo otro de identificar si es digito, cadena... no se, pero caracter por caracter puedes sacar con la funcion strchr, su prototipo es char *strchr(const char,int c)
y la llamada
ejemplo

char cadena[10];
gets(cadena);
if(strchr(cadena,"."))
cout<<"la cadena"<<cadena<<"contiene el caracter punto";
ya marcela ojala que te sirva.....................

Alejandro_
07 de Mayo del 2004
En C, estas funciones están en la biblioteca <ctype.h>
cada función devuelve no-cero (true) si el argumento c satisface la condición descripta.

isalnum(c) isalpha(c) o isdigit(c) es true
isalpha(c) isupper(c) o islower(c) es true
iscntrl(c) carácter de control
isdigit(c) dígito decimal
isgraph(c) carácter imprimible excepto espacio
islower(c) letra minúscula
isprint(c) carácter imprimible incluido espacio
ispunct(c) carácter imprimible excepto espacio o letra o dígito decimal
isspace(c) espacio, nueva página, nueva linea, retorno de carro, tab, tab vertical
isupper(c) letra mayúscula
isxdigit(c) dígito hexadecimal

En cuanto a la longitud de una cadena, si se trata de una cadena de caracteres de estilo C, puedes usar strlen() de la biblioteca <string.h>

Si es una "string" de la biblioteca estándar de C++ puedes usar su método "size()".

Alejandro