Hola y bienvenido de nuevo.
Estamos en una nueva sección.
En esta sección, vamos a hablar sobre cadenas de caracteres.
Probablemente me hayas escuchado decir la cadena de palabras un poco a lo largo de la
clase, y usted puede haber estado un poco confundido.
En realidad, una cadena es solo una palabra.
Es algo encerrado entre comillas dobles.
Vamos a hablar de como podemos almacenar cadenas en matrices de caracteres.
Así que hasta este punto, estamos bastante familiarizado con un solo
carácter, el tipo de datos char o el tipo de datos "cuidado", como quieras pronunciarlo. Sabemos lo que es eso, pero realmente no hemos aprendido acerca
de las palabras.
Para asignar un solo carácter a una variable char, el carácter está
encerrado dentro de una par de comillas simples.
Estamos familiarizados con esto.
Hemos
aprendido todo sobre esto. En este ejemplo, signo más es igual a más dentro de comillas simples.
Lo importante ahí son las comillas simples.
También has aprendido que hay es una distinción entre
comillas simples y comillas dobles.
Entonces, si pones la variable de signo más y le
asigna algo entre comillas dobles y el signo más es de tipo char, eso no
va a funcionar, porque solo puede asignar un solo caracteres al tipo de datos char.
Una constante de cadena o literal de cadena es una secuencia de caracteres o símbolos entre
un par de comillas dobles.
Así que ahora las comillas dobles son va a venir una nueva obra de teatro.
Cualquier cosa entre estos dobles El compilador interpreta comillas
como una cadena.
Y entonces realmente puede ser caracteres alfanuméricos, pueden ser
caracteres especiales pero Por lo general, inventa palabras que puedes considerar
como texto.
Puedes tener espacios.
Pero cualquier cosa en doble comillas es una cadena literal.
Cada vez que has mostrado un mensaje usando
la función printf, hemos definido el mensaje como una constante de cadena.
Recuerda printf, el primer argumento ponemos algo de texto dentro y tenemos
algunos especificadores de formato.
Esa es una consonante de cuerda.
También escuchas el término cadena literal es lo mismo.
Entonces decimos imprimir si esto es una cadena todo lo que hay en el
medio que esas comillas dobles es una constante de cadena y podemos ponerlo en una o dos líneas.
También notas que puedes tienen sentencias de impresión que tienen
secuencias de escape con barra invertida n. Ahora este tercero es muy bueno, lo explicaré
en un segundo.
Pero el punto principal es que tienes para
entender la diferencia entre comillas simples y dobles citas y lo que hay dentro.
Con las comillas dobles, tienes cuerdas.
Con las comillas simples, tienes personajes.
Hay dos tipos de constantes.
Para este tercer ejemplo, este printf donde tenemos los cuatro y luego tenemos una
barra invertida y luego una comilla simple.
Si realmente quieres mostrar una comilla simple como
salida, debe escapar de ella.
Y puedes escapar especial caracteres mediante el uso de la barra invertida.
Entonces, en el tercer ejemplo, es de
hecho, va a imprimir cuatro comillas dobles que escriba, y luego otra comilla doble.
Entonces el compilador interpreta un explícito comillas dobles sin barra invertida anterior
como delimitador de cadena.
Cada dos veces usas un doble cite el comienzo y el final de una cadena,
pero ¿y si quisiera? mostrarlo, entonces solo tiene que poner la
barra invertida delante de él.
Y le dirá al compilador hey esto no es realmente el final de la cadena.
Es algo que queremos para mostrar o algo
que queramos usar como ese carácter.
También tienes que usar el escape secuencia si desea hacer
la barra invertida también porque la barra invertida es una secuencia de escape.
Entonces, cuando veas la barra invertida barra invertida, en realidad está mostrando esa
barra invertida en una función printf.
Si lo ves en otro lugar, estás asignando la barra invertida a
una variable o como se usa.
Pero una barra invertida en sí misma siguió con otra barra invertida se escapará de
la cadena de barra invertida.
Y de nuevo, una barra invertida y una cadena siempre señala el
inicio de una secuencia de escape.
Entonces uno por sí mismo es no se va a mostrar.
Estos son personajes especiales.
Entonces, cuando estás entre comillas dobles, puede ver las barras invertidas para escapar de
los caracteres especiales e incluso la barra invertida en sí.
Así es como está la cadena en la memoria.
Una cadena en la memoria es cada carácter individual está
representado por un bit aquí.
Y si tienes una cuerda llamado esto es una cadena, lo verás donde el
el espacio tiene algo en la memoria.
Y también deberías notar en el final de la barra invertida cero que es
el terminador nulo del que vamos a hablar.
Pero para la segunda cuerda, de nuevo, ves todo lo que hay en la memoria.
Incluso la barra invertida n que representa que hay una nueva línea en la memoria.
Y luego para ti, lo harás observe que la cita está en la memoria.
Pero la barra invertida no lo es.
Porque la barra invertida está delimitando la cotización.
Está escapando de la cita.
Así es como se ve en la memoria.
Deberías notar que la cuerda en la memoria siempre tiene al menos un byte
más para esa barra invertida cero, que es el carácter nulo.
También se parece al diagrama en la parte inferior es incorrecta.
Notarás que el "tú" no se muestra aquí así que después de la cita doble, no
te ves allí. El deberías ser allí en algún lugar
y de alguna manera se aplica está allí en algún lugar donde están realmente simplemente
mostrándolo, estos son los valores ASCII debajo y entonces es simplemente mostrándolo, no mostrándolo, pero estarías justo
antes de la derecha.
Y eso es lo que quiero hablar sobre es este carácter nulo.
Es un personaje especial con el valor de código cero.
Se agrega al final de cada cadena. para que el compilador
sepa dónde termina y también cuándo lo ejecuta.
Este personaje se conoce como el carácter nulo,
y no le pones un cero puede poner una barra invertida cero.
Y eso es lo que estaba en esto diapositiva anterior al final.
Y podría estar en cualquier lugar de hecho en la memoria.
Y dependiendo de donde esté memoria, una función irá y
buscará hasta que vea que barra invertida cero y puede mostrarlo o manipularlo
si está utilizando diferentes funciones de cadena.
Es muy importante ese carácter nulo.
Una cadena siempre termina por un carácter nulo.
Entonces la longitud de una cuerda es siempre uno mayor que el número de
caracteres de la cadena.
Esto se va a volver muy importante cuando usamos matrices de caracteres
y especificamos el tamaño del matriz, el tamaño de la matriz siempre tendrá que
ser uno más de cómo muchos caracteres que desea almacenar debido
a este carácter nulo.
También tenemos un concepto de nulo que realmente no hemos
hablado con demasiados detalles.
Suele entrar en juego cuando hablamos
de punteros, pero no confundamos el nulo carácter con la palabra clave nula.
Entonces hay una palabra clave nula en uno de los encabezados de inclusión que puede utilizar.
Y este es un símbolo que representa una dirección de memoria
que no hace referencia a nada.
Entonces lo usas cuando cuando usas punteros.
Un carácter nulo es solo un terminador de cadena.
Hablaremos más sobre nulo cuando hable sobre punteros, pero asegúrese de comprender
la distinción entre carácter nulo y la palabra clave nula.
Puede agregar un carácter cero con barra invertida al final de
una cadena explícitamente y esto creará dos cadenas y Le mostraré cómo hacer esto cuando
hablemos de definir matrices de caracteres.
Aquí hay un ejemplo con el terminador nulo.
Tenemos una impresión f aquí, y decimos el carácter y luego la barra
invertida cero que termina una cadena.
Entonces, lo que va a pasar es si compile
y ejecute este programa, el resultado que
obtendrá es la primera línea será el carácter y luego la barra invertida o va a haber un va a terminar
y solo la primera parte de la cadena se mostrará.
No va a haber mas salida porque print piensa que es el
final de la cadena.
Entonces simplemente imprime el personaje.
La salida terminará después esas dos primeras palabras porque la función
deja de generar una vez alcanza el carácter nulo.
Entonces, la segunda barra invertida cero en el final de la cadena, por lo que
aunque no vea una barra invertida cero aquí justo antes de la
comilla doble final, justo después del punto de cadena, todavía hay uno allí,
pero nunca nunca se alcanza.
Entonces hay un terminador nulo implícito al final de la cadena y el printf
para que sepa dónde terminar.
Y si agrega otro, es solo se mostrará hasta el primero.
Entonces, el primer terminador nulo que es que se encuentra en la serie de
caracteres siempre marca el final de la cadena.
Entonces, comprenda estos caracteres nulos.
Esta fue solo una descripción general rápida para describir qué
es una cadena y entender que las cadenas están entre comillas dobles.
Y también quiero describir el carácter nulo.
En la próxima conferencia, comprender qué son las cadenas
de caracteres en términos de cómo puede crear estos diferentes este
tipo de variable para almacenar cadenas.
Gracias.