Contenido del Curso
Fundamentos de C
Fundamentos de C
Char 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.
main
#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:
main
#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:
main
#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:
Main
#include <stdio.h> int main() { char str[] = "c<>definity"; str[5] = '#'; // change the sixth character `f` to `#` printf("%s\n", str); return 0; }
¡Gracias por tus comentarios!