[C con Clase] Manejo de cadenas de caracteres

Vicent vginer en gmail.com
Jue Ene 21 09:41:31 CET 2010


Hola.

Hasta ahora yo siempre había definido las cadenas de caracteres como "arrays
de elementos de tipo char". He leído ahora que eso son "cadenas al estilo
C", y que en C++ existen también objetos de tipo "String" (o algo así).
Navegando por la ayuda del Visual Studio he visto que estos objetos cuentan
con más métodos para manejo de caracteres que los existentes en la librería
<string.h> para las cadenas "estilo C".

Yo estoy usando las cadenas simplemente para poder leer un fichero de texto
y pasar los datos leídos a unas variables.

Pero, por ejemplo, por la estructura del fichero, que es un poco "libre" (no
son campos de ancho fijo, sino delimitados por ciertos caracteres, podríamos
decir), a veces necesitaría usar una función tipo "wrap", que elimine los
espacios iniciales y finales de una cadena de caracteres.

También necesitaría tomar "substrings", es decir, trozos de una cadena de
caracteres (por ejemplo, del carácter 3 al 5). Y cosas así.

Mi pregunta es: si no estoy usando "objetos" en mi proyecto (al menos, de
momento), y si sólo quiero hacer lo que os he dicho, ¿lo puedo hacer todo
usando sólo la librería <string.h> y cadenas "al estilo C"? ¿Cómo hago en
ese caso para hacer "wrap", etc.?

O bien, ¿es mejor usar objetos tipo "String"? En ese último caso, ¿cuáles
son las funciones para leer un "String" a partir de un fichero de texto, y
para escribir un "String" en un fichero de texto?

Ando un poco perdido en esto, porque en otros lenguajes con los que he
trabajado (Visual Basic, PL/SQL Oracle, etc.) todas las operaciones con
caracteres me parecían mucho más lógicas, transparentes, etc. Aquí en C...
hay que "pensar" mucho.   :-S

Gracias de antemano por vuestras respuestas.

Un saludo.

--
Vicent
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100121/2d1b2c4e/attachment.html>


Más información sobre la lista de distribución Cconclase