[C con Clase] Pregunta sobre Cadena de caracteres (Arrays)

mvillagomez en sayab.com.mx mvillagomez en sayab.com.mx
Vie Ene 5 20:02:13 CET 2007


Scanf y gets pecan de lo mismo, ambos pueden provacar un overflow, usa
cgets para cargar una longitud fija en la cadena y evitar este error.
Para los espacios gets no te corta la cadena en los espacios y cómo dicen
el carácter que finaliza una cádena es \0.


> Si quieres guardar cadenas con espacios puedes usar gets, que guarda
> caracteres hasta la longitud -1 especificada, o el caracter \n.
> Si trabajas con punteros, es vueno pedir memoria dinámica para la
> introducción de datos.
> Salu2
> ----- Original Message -----
> From: "Raul Chakraborty" <chakras_ve en hotmail.com>
> To: "Lista de correo sobre C y C++" <cconclase en listas.conclase.net>
> Sent: Friday, January 05, 2007 11:29 AM
> Subject: Re: [C con Clase] Pregunta sobre Cadena de caracteres (Arrays)
>
>
>
> Si estas en Borland o Dev, lo mejor es declarar un array fijo he
> introducir
> los datos en este array fijo... es decir:
>
> char cadena[80];
> cin>>cadena; (tambien puedes usar scanf("%s", cadena);
>
> Se usa un array fijo y no un apuntador no inicializado, debido a que el
> apuntador no garantizaria escribir estos datos en una memoria que no este
> en
> uso, en cambio al declarar un array fijo, se reserva este espacio para el
> programa garantizando de que no estas escribiendo sobre memoria que no te
> pertenece. OJO no digo que no funcione con un apuntador, solo digo que si
> quieres usar un apuntador, deberias inicializaro antes, para evitar que el
> equipo o lo que estes programando funcione inadecuadamente.
>
>
>
> ________________________________
>> Date: Fri, 5 Jan 2007 09:18:17 -0500
>> From: lashy84 en gmail.com
>> To: cconclase en listas.conclase.net
>> Subject: Re: [C con Clase] Pregunta sobre Cadena de caracteres (Arrays)
>>
>> tambien puedes almacenar la cadena en un string y luego leer el string y
>> guardarlo en una cadena de caracteres char o usarlo como tipo de datos
>> string .
>> 2007/1/2, David Reza < l.fix3r.l en gmail.com<mailto:l.fix3r.l en gmail.com>>:
>> Hola, me gustaría saber como puedo hacer para que pueda hacer un
>> programa
>> que lea una cadena de caracteres y lo guarde en un array de tipo char.
>> Esque leí que la asignación directa solo está permitida cuando se hace
>> la
>> declaración. Entonces no se puede hacer algo como:
>> char cadena[];
>> cin >> cadena;
>> y esperar que todo lo que reciba cadena se guarde en el array?
>> Tal vez puede que si, y sólo se guarde la primera palabra ya que un
>> espacio es un carácter nulo y eso le daría a entender al compilador que
>> hasta ahí termina la cadena, pero entonces sí se puede?
>> También sé que se puede hacer con un púntero, creo que de la siguiente
>> forma:
>> char *pCadena;
>> cin >> pCadena;
>> o algo así.
>> Ojalá puedan orientarme. Saludos
>> -------------------------
>> | = David Reza = |
>> _______________________________________________
>> Cconclase mailing list
>> Cconclase en listas.conclase.net<mailto:Cconclase en listas.conclase.net>
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>
> _________________________________________________________________
> Busca desde cualquier página Web con una protección excepcional. Consigue
> la
> Barra de herramientas de Windows Live hoy mismo y GRATUITAMENTE.
> http://www.toolbar.live.com
> _______________________________________________
> Cconclase mailing list
> Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>
>
> _______________________________________________
> Cconclase mailing list
> Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>





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