Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Char y String | Datos
Fundamentos de C
course content

Contenido del Curso

Fundamentos de C

Fundamentos de C

1. Introducción
2. Datos
3. Operadores
4. Control de Declaraciones
5. Funciones
6. Punteros

book
Char y String

En la conclusión de nuestra última lección, insinuamos la idea de usar arreglos para manejar texto.

En C, no hay un tipo de dato específico diseñado únicamente para cadenas (o texto). En su lugar, utilizamos un arreglo del tipo char, donde cada elemento del arreglo contiene un carácter único. Así, el texto "c<>definity" se representaría como:

Puede que hayas notado que el texto "c<>definity" contiene solo 11 caracteres, sin embargo, el arreglo cuenta con 12 elementos.

Nota

Piénsalo: cada palabra que conoces es solo una combinación de letras.

El carácter \0

Este carácter, \0, señala el fin de una cadena en C. No lo confundas con el número cero; es un carácter único, no imprimible, similar a \n. En la tabla ASCII, este carácter tiene el código 0.

Se reserva una celda adicional del arreglo para este carácter.

Siempre que trabajes con texto, asegúrate de que el arreglo que contiene el texto tenga un tamaño de un elemento más que la longitud real del texto.

Nota

Recuerda, incluso un espacio es un carácter y requiere su propio lugar en el arreglo. Por ejemplo: char array[10] = { 'u','s','e',' ','s','p','a','c','e','\0' }.

Char vs. String

Es crucial reconocer que 'x' y "x" no son lo mismo.

Una cadena consiste en caracteres. Siempre recuerda terminar una cadena con el carácter \0.

  • 'x' es simplemente una constante de carácter del tipo char;
  • "x" es una cadena, un arreglo de valores char, o, en este caso, {'x', '\0'}.

Nota

Asegúrate de no confundir '\0', '0' y "0". El primero es un literal de carácter que representa el carácter con código ASCII 0 (NULL). El segundo es un literal de carácter para el dígito 0, con un código ASCII de 48. El tercero es una cadena que consta de dos caracteres: el dígito 0 y el terminador de cadena, \0.

Salida de Cadenas

En C, cuando deseas mostrar cadenas (arreglos de valores char), utilizas el especificador %s. Este especificador guía a la función printf() sobre qué tipo de información debe esperar. Al usar %s, informamos a la función printf() que recibirá una cadena.

c

main

copy
12345678910
#include <stdio.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%s\n", array); // use %s format specifiers return 0; }

El lenguaje C incluye una biblioteca estándar para la manipulación de cadenas, <string.h>.

Dentro de esta biblioteca, hay una función que cuenta el número de caracteres en una cadena:

c

main

copy
123456789101112
#include <stdio.h> #include <string.h> int main() { char array[] = { 'c','<','>','d','e','f','i','n','i','t','y','\0' }; printf("%d\n", strlen(array)); return 0; }

Vamos a sumergirnos en un ejemplo ilustrativo:

c

main

copy
12345678910
#include <stdio.h> int main() { char str[] = "c<>definity"; printf("%c\n", str[0] ); return 0; }

Curiosamente, al aprovechar el índice, accedemos al elemento inicial del array. Esencialmente, en su núcleo, las cadenas son solo arrays de tipo char.

Gracias a las propiedades de los arrays, puedes alterar elementos específicos de una cadena usando índices:

c

Main

copy
123456789101112
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // change the sixth character `f` to `#` printf("%s\n", str); return 0; }
¿Dónde está la cadena?

¿Dónde está la cadena?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 6
We're sorry to hear that something went wrong. What happened?
some-alt