Strings Step by Step
Character arrays, null terminators, and String objects in C, Java, JS, and Python.
SLIDE 1 / 6
1. Internal Text Representation
A string is a sequence of characters (ASCII/UTF-8/UTF-16). In C it ends with null `\0`, whereas Java/JS/Python use explicit length objects.
"HOLA" STRING IN 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. Null Terminator Inspector
C String
['H', 'o', 'l', 'a', '\0'] ➔ Longitud: 4 (5 bytes)
Java / JS / Python
Objeto Inmutable con atributo `length` o `len()`
Navigation: Left / Right Arrows