Para poder usar estas funciones tenemos que incluir la cabecera: string.h
Ejemplo de uso:
#include <string.h>
int main{
char txt1[100]="hola";
char txt2[100]="adios";
prinft("%s",txt1);
.....
// vamos a copiar la cadena txt2 en la txt1
Copiar cadenas:
strcpy
Copia la el contenido cadena que esta en la derecha , en la variable que esta a la izquierda.
Ejemplos:
strcpy (txt1,"Holita");
strcpy (TablaDePc[c].nombre,"Compuradora del Profesor");
strcat Suma dos cadenas (las concatena), añade la 2º cadena al final de la cadena 1º y el resultado la guarda en la primera:
Ejemplos:
char txt1[100]="Hola"
char txt2[100]=", venga hasta luego."
printf("%s",txt1);
strcat(txt1,txt2);
prinft("%s",txt1;
Dara de resultado, en la terminal: "Hola, venga hasta luego."
Comparar cadenas:
strcmp
Compara dos cadenas (en orden alfabéticamente) y devuelve un número que es el resultado de esa comparación.
Si el resultado devuelto es:
positivo: indica que la cadena 1 > cadena 2
0: indica que son iguales
negativo: indica que la cadena 1< cadena 2
Nota:
la letra "a" esta despues que la letra "A", ya que se usa el nº del
código ASCII, para la ordenación. ("a" es el número 97 en el código
ASCII, y "A" es el número es 65 en el código ASCII)
Longitud de Cadenas:
strlen
Te devuelve la longitud de una cadena, (el numero de caracteres que contiene)
Ejemplo:
Printf("%d",strlen("Pedrito"))
En la terminal saldria 7
Ahora vamos a ver otra cabecera: ctype.h
Pasar caracteres a mayusculas:
int toupper(int caracter) -> pasa un caracter a mayusculas
int tolower(int caracter) -> pasa un caracter a minusculas.
Ejemplos:
Hacer una copia de txt1 y txt2.
char txt1[100]="Hola";
char txt2[100]="adios";
char copia1[100];
char copia2[100];
strcpy(copia1,txt1);
strcpy(copia2,txt2);
// conversion de una cadena de caractares a minusculas
for(c=0;c<strlen(copia1);c++){
copia1[c]=tolower(copia1[c]);
}
for(c=0;c<strlen(copia2);c++){
copia2[c]=tolower(copia2[c]);
}
// ahora que las dos las tenemos en minusculas ,( para no tener
encuenta si contienen caracteres en mayusculas o minisculas ), las vamos
a compararlas alfabéticamete:
if (strcmp(copia1,copia2)>0) {
// copia1 es mayor que copia 2
} else {
If (strcmp(copia1,copia2)=0) {
// son iguales
} else {
//copia 2 es mayor que copia 1
}
}
Nota:
Tambien podemos hacer la copia y ponerlo en minisculas en un solo for:
for (c=0; c<strlen(txt2);c++){
copia2[c]=tolewer(txt2[c]));
}
No hay comentarios:
Publicar un comentario