Cadenas de Texto Paso a Paso
Arrays de caracteres, terminadores nulos y objetos String en C, Java, JavaScript y Python.
SLIDE 1 / 6
1. Representación Interna de Texto
Una cadena de texto es una secuencia de caracteres (ASCII / UTF-8 / UTF-16). En C termina con un carácter nulo (`\0`), mientras que en Java/JS/Python son objetos con longitud explícita.
CADENA "HOLA" EN C
[0] 'H' | [1] 'o' | [2] 'l' | [3] 'a'['\0' en pos 4]
2. C: Arrays de char y '\0'
En C las cadenas son mutables si se declaran como `char str[]`, pero requieren `strlen` para calcular longitud hasta encontrar `\0`.
string.c
char saludo[] = "Hola"; // 5 bytes en RAM (con \0)
saludo[0] = 'h'; // Mutación directa 3. Java: String Pool e Inmutabilidad
Java almacena literales en el String Pool y sus instancias son 100% inmutables. Modificar un String crea un objeto nuevo.
StringPool.java
String s1 = "Hola";
String s2 = s1.concat(" Mundo"); // Nuevo objeto 4. JavaScript: Template Literals
JS soporta interpolación directa con template literals (`"Hola " + usuario`) e inmutabilidad de caracteres primarios.
template.js
const user = "Ana";
const msg = `Bienvenido ${user}`; 5. Python: Slicing e Inmutabilidad
Python ofrece slicing súper expresivo `str[::-1]` para revertir cadenas de forma inmutable.
slicing.py
texto = "Python"
reversed_text = texto[::-1] # "nohtyP" 6. Inspector de Terminador Nulo
C String
['H', 'o', 'l', 'a', '\0'] ➔ Longitud: 4 (5 bytes)
Java / JS / Python
Objeto Inmutable con atributo `length` o `len()`
Navegación: Flechas Izq / Der