Procesamiento de Cadenas

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()`