Cadenas y texto
13 pasos en 5 series de C.
Las cadenas de C son una convención, no un tipo: un puntero y la promesa de que hay un byte cero en algún punto más adelante. Todo en este tour se desprende de eso.
Copiar y construir, comparar y buscar, dividir y parsear, y transformar. Trece pasos, y más o menos la mitad tratan de no pasarte del final de un búfer.
Copiar y construir
- Copiar cadenasstrcpy confía en ti por completo; strncpy no siempre termina. Conoce ambas trampas.
- snprintf, el constructor segurosnprintf acota la escritura y te dice cuánto habría medido el resultado completo.
- Concatenaciónstrcat agrega en el terminador existente; el destino debe tener espacio para ambos.
- Construir una cadena en el heapUnir un número desconocido de piezas: medir, reservar una vez y copiar.
Comparar y buscar
- Comparar cadenasstrcmp ordena texto y nunca devuelve un bool: compara su resultado contra cero.
- Buscar dentro del textostrchr encuentra un carácter, strstr una subcadena, y ambos devuelven NULL si no está.
- Búsqueda de subcadenas a manoEl escaneo ingenuo, escrito completo, porque el punto es conocer su costo.
Dividir y parsear
- Partir con strtokstrtok corta una cadena en tokens en el lugar, es decir, modifica la entrada.
- Parsear números como se debestrtol reporta dónde se detuvo y marca errno al desbordarse — atoi no hace ninguna de las dos.
- Recortar espaciosRecortar en el lugar: avanzar para el inicio, retroceder para el final.
Transformar
- Mayúsculas, minúsculas y comparaciónConvertir en el lugar y comparar sin distinguir mayúsculas de minúsculas.
- Ajustar texto a un anchoEmitir palabras hasta agotar la columna y entonces empezar una línea.
Bis
- csv_parse.cUn lector de CSV completo: partir líneas en campos, recortarlos, resumir.