C Funciones de cadena
Funciones de cadena
C también tiene muchas funciones de cadena útiles, que se pueden usar para realizar ciertas operaciones en cadenas.
Para usarlos, debes incluir el archivo de encabezado <string.h>
en tu programa:
#include <string.h>
Longitud de la cuerda
Por ejemplo, para obtener la longitud de una cadena, puede utilizar la función strlen()
:
Ejemplo
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet));
Inténtalo tú mismo »
En el capítulo de Cadenas, usamos sizeof
para obtener el tamaño de una cadena/matriz. Tenga en cuenta que sizeof
y strlen
se comportan de manera diferente, ya que sizeof
también incluye el carácter \0
al contar:
Ejemplo
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet)); // 26
printf("%d", sizeof(alphabet)); // 27
Inténtalo tú mismo »
También es importante que sepas que sizeof
siempre devolverá el tamaño de la memoria (en bytes), y no la longitud real de la cadena:
Ejemplo
char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet)); // 26
printf("%d", sizeof(alphabet)); // 50
Inténtalo tú mismo »
Concatenar cadenas
Para concatenar (combinar) dos cadenas, puede utilizar la función strcat()
:
Ejemplo
char str1[20] = "Hello ";
char str2[] = "World!";
// Concatenar str2 con str1 (el resultado se almacena en str1)
strcat(str1, str2);
// Imprimir str1
printf("%s", str1);
Inténtalo tú mismo »
Tenga en cuenta que el tamaño de str1
debe ser lo suficientemente grande como para almacenar el resultado de las dos cadenas combinadas (20 en nuestro ejemplo).
Copiar cadenas
Para copiar el valor de una cadena a otra, puede usar la función strcpy()
:
Ejemplo
char str1[20] = "Hello World!";
char str2[20];
// Copiar str1 a str2
strcpy(str2, str1);
// Imprimir str2
printf("%s", str2);
Inténtalo tú mismo »
Tenga en cuenta que el tamaño de str2
debe ser lo suficientemente grande como para almacenar la cadena copiada (20 en nuestro ejemplo).
Comparar cadenas
Para comparar dos cadenas, puede utilizar la función strcmp()
.
Devuelve 0
si las dos cadenas son iguales, en caso contrario un valor que no es 0:
Ejemplo
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "Hi";
// Compare str1 y str2 e imprima el resultado
printf("%d\n", strcmp(str1, str2)); // Devuelve 0 (las cadenas son iguales)
// Compare str1 y str3 e imprima el resultado
printf("%d\n", strcmp(str1, str3)); // Devuelve -4 (las cadenas no son iguales)
Inténtalo tú mismo »