C Cadenas
Cadenas
Las cadenas se utilizan para almacenar texto/caracteres.
Por ejemplo, "Hello World" es una cadena de caracteres.
A diferencia de muchos otros lenguajes de programación, C no tiene un tipo de cadena para crear fácilmente variables de cadena. En su lugar, debes usar el tipo char
y crear una matriz de caracteres para crear una cadena en C:
char greetings[] = "Hello World!";
Tenga en cuenta que debe utilizar comillas dobles (""
).
Para generar la cadena, puede usar la función printf()
junto con el especificador de formato %s
para indicar C que ahora estamos trabajando con cadenas:
Cadenas de acceso
Dado que las cadenas son en realidad matrices en C, puede acceder a una cadena consultando su número de índice entre corchetes []
.
Este ejemplo imprime el primer carácter (0) en greetings (saludos):
Tenga en cuenta que tenemos que utilizar el especificador de formato %c
para imprimir un carácter único..
Modificar cadenas
Para cambiar el valor de un carácter específico en una cadena, consulte el número de índice y utilice comillas simples:
Ejemplo
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// Salidas Jello World! en lugar de Hello World!
Inténtalo tú mismo »
Bucle a través de una cadena
También puedes recorrer los caracteres de una cadena, usando un bucle for
:
Ejemplo
char carName[] = "Volvo";
int i;
for (i = 0; i < 5; ++i) {
printf("%c\n", carName[i]);
}
Inténtalo tú mismo »
Y como especificamos en el capítulo matrices, también puedes usar la fórmula sizeof (en lugar de escribir manualmente el tamaño de la matriz en el bucle condición (i < 5)
) para hacer que el bucle sea más sostenible:
Ejemplo
char carName[] = "Volvo";
int length = sizeof(carName) / sizeof(carName[0]);
int i;
for (i = 0; i < length; ++i) {
printf("%c\n", carName[i]);
}
Inténtalo tú mismo »
Otra forma de crear cadenas
En los ejemplos anteriores, utilizamos un "literal de cadena" para crear una variable de cadena. Esta es la forma más sencilla de crear una cadena en C.
También debes tener en cuenta que puedes crear una cadena con un conjunto de caracteres. Este ejemplo producirá el mismo resultado que el ejemplo al principio de esta página:
Ejemplo
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
printf("%s", greetings);
Inténtalo tú mismo »
¿Por qué incluimos el carácter \0
al final? Esto se conoce como "carácter de terminación nulo" y debe incluirse al crear cadenas usando este método. Le dice a C que este es el final de la cadena.
Diferencias
La diferencia entre las dos formas de crear cadenas es que el primer método es más fácil de escribir y no es necesario incluir el carácter \0
, como C lo hará por ti.
Debes tener en cuenta que el tamaño de ambas matrices es el mismo: ambas tienen 13 caracteres (por cierto, el espacio también cuenta como un carácter), incluido el carácter \0
:
Ejemplo
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%lu\n", sizeof(greetings)); // Salidas 13
printf("%lu\n", sizeof(greetings2)); // Salidas 13
Inténtalo tú mismo »
Ejemplo de la vida real
Utilice cadenas para crear un mensaje de bienvenida sencillo:
Ejemplo
char message[] = "Good to see you,";
char fname[] = "John";
printf("%s %s!", message, fname);
Inténtalo tú mismo »