domingo, 11 de abril de 2010

Strings

Definición
Los strings en C "no existen" como tipo, pero se toma una convención: Los strings son arreglos unidimensionales de caracteres que terminan en el caracter ASCII 0 ('\0').

Si se cumple con esta definición. se cuenta con una coleccion de funciones para trabajar con strings (strlen(), para calcular el largo, strcpy(), para copiar el contenido de un string a otro, etc. )

Caso especial: String literal
Los strings literales usan la comilla doble. El compilador transforma los string literales en arreglos unidimensionales con un 0 al final.

Definir una variable asi:
char *s = { 'h', 'o', 'l', 'a', '\0' };

es similar a haberlo hecho asi:
char *s = "hola";


Errores comunes:
- No dejar espacio suficiente para el caracter de fin.
char str[4];

strcpy( str, "hola" ); // <-- "hola" -> 5 caracteres, str -> espacio solo para 4

- Creer que un string ya tiene memoria por solo haber definido un puntero a char.

char *str;  // <-- no hay solicitud de memoria  strcpy( str, "problemas" );

pero, la definicion y la inicializacion inmediata sí solicita memoria
char *str = "no hay problemas";  // solicitud de memoria implicita

No hay comentarios:

Publicar un comentario