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. Declaraciones de Control
5. Funciones
6. Indicadores

bookChar y String

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

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

Te habrás dado cuenta de que el texto "c<>definity" contiene sólo 11 caracteres, pero la array tiene 12 elementos.

Nota

Piénsalo: todas las palabras que conoces son una combinación de letras.

El carácter \0

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

Una celda adicional de la array está reservada para este carácter.

Siempre que trabajes con texto, asegúrate de que la array que contiene el texto tiene 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 la array. 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 string está formada por caracteres. Recuerda siempre completar una string con el carácter \0.

  • 'x' es simplemente una "constante de caracteres" de tipo char;
  • "x" es una string, una "array de valores de caracteres", o, en este caso, "x", "0".

Nota

Asegúrese 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 string formada por dos caracteres: el dígito 0 y el terminador de la string, \0.

Salida de String

En C, cuando se desea mostrar strings (arrays de valores char), se utiliza el especificador %s. Este especificador guía a la función printf() sobre qué tipo de información debe esperar. Usando %s, informamos a la función printf() que recibirá una string.

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 strings, <string.h>.

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

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; }

Veamos un ejemplo ilustrativo:

c

main

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

Curiosamente, aprovechando el índice, accedemos al elemento inicial de la array. Básicamente, las strings son arrays de tipo char.

Gracias a las propiedades de las arrays, puedes alterar elementos específicos de las strings utilizando í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 string?

¿Dónde está la string?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 6
some-alt