String en C++
Enviado por Partido Radical Venezuela • 26 de Noviembre de 2017 • Apuntes • 1.240 Palabras (5 Páginas) • 301 Visitas
como hasta ahora hemos realizado. Tenemos que utilizar obligatoriamente la función strcpy.
FUNCIONES DE MANEJO DE CADENAS
- Estas funciones, que están en la librería ’string.h ' :
- No realizan reserva dinámica de memoria: Si una función necesita escribir una cadena en un parámetro, ese parámetro debe ser o un vector o un puntero a char inicializado con malloc o realloc.
- No comprueban los límites de los arrays, asi que es responsabilidad del programador asegurar que los arrays o punteros que se le pasan a estas funciones son lo suficientemente grandes
- Las funciones más utilizadas son las siguientes:
char * strcat( char * cadena1, char * cadena2)
Concatena (añade al final) una copia de cadena2 en cadena1 y añade al final de cadena1 el carácter nulo ’\0'. El carácter nulo que originalmente tenía cadena1 se sustituye por el
primer carácter de cadena2. La cadena2 no se modifica en esta operación.
La función devuelve la (dirección de) cadena1 modificada por la concatenación.
Ejemplo: Programa que lee dos cadenas, pega la primera a la segunda y muestra el resultado por pantalla.
#include ‹stdio.h> #include ‹string.h> int main ()
{
char cad1[30],cad2[30]; gets(cad1);
gets(cad2); strcat(cad2,cad1); puts(cad2);
}
int strcmp (const char*cad1, const char*cad2)
Compara lexicográficamente, distinguiendo entre minúsculas y mayúsculas, dos cadenas que finalizan con el carácter nulo y devuelve un entero que se interpreta así:
Valor devuelto | Significado |
0 ‹ (negativo) | cad1 es menor que cad2 |
0 | cad1 == cad2 |
> 0 (positivo) | cad1 es mayor que cad2 |
Las funciones stricmp y strcmpi: ignoran la diferencia entre minúsculas y mayúsculas.
Ejemplo: Programa que verifica la introducción de contraseñas. La palabra clave es “paso". #include ‹stdio.h>
#include ‹string.h>
int claveOK(); //Función booleana int main ()
{
if (claveOK()){
printf("Palabra clave correcta"); return(1);
}
else{
printf("palabra clave invalida\n"); return(0);
}
}
int claveOK()
{
char s[30];
int nIntentos=3; do{
printf("Introduzca una palabra clave: ");
gets(s);
if (strcmp(s,"paso"))
nIntentos--; //Palabra clave no válida else
break; //Palabra clave válida
} while(nIntentos>0);
return(nIntentos);
}
char *strcpy (char *cad1, const char *cad2)
Copia el contenido de cad2 en cad1, devolviendo cad1. Es lo mas parecido que tiene C a la operación de asignación de una cadena a una variable.
Ejemplo: Programa que copia “hola" en ’cad'
#include ‹stdio.h> #include ‹string.h> int main ()
{
char cad[80]; strcpy(cad,"hola"); puts(cad);
}
int strlen (const char *cad1)
Devuelve el número de caracteres de una cadena sin contar el ’\0' final.
char *strlwr (char *cad1)
Convierte cad1 a minúculas.
char *strncat (char*cad1,const char*cad2,int n)
Añade no más de n caracteres (un carácter nulo y los demás caracteres siguientes no son añadidos) de la cadena apuntada por cad2 al final de la cadena apuntada por cad1. El carácter inicial de cad2 sobrescribe el carácter nulo al final de cad1. El carácter nulo siempre es añadido al resultado.
...