PDA

Ver la Versión Completa : Ayuda...


Danielk_dk
08-04-2007, 06:35:15
<p>En C/C++ necesito una pequeña ayudita:</p>
<p>Necesito asignar a una variable un texto, por ejemplo: hola. Ya pude hacer que entrara por teclado, pero no puedo hacerlo directamente desde el código. ¿Alguien sabe cómo hacerlo? </p>
<p>Gracias.</p>

Japofran
08-04-2007, 16:03:40
En C las variables tipo cadena (string) son punteros. Probablemente no sepas todavía qué son los punteros... El caso es que la variable en sí no almacena el dato en sí, sino la dirección de memoria donde está. Al igual que el operador & devuelve la dirección de memoria de una variable, puedes usar el operador * para obtener el dato en una determinada dirección. ¿Parece que has usado la variable scanf()? A esa función hay que introducirle punteros, de ahí que las variables tipo cadena las introduzcas sin más pero los int, char, float, etc. deban ir precedidos por un operador &. También hay muchas funciones predefinidas en las librerías específicas para manipular cadenas, más o menos todas empiezan por "str..."

<p>Si esto suena complicado, mi consejo es que busques un tutorial --hay muchos por la red-- y lo vayas siguiendo paso a paso.

Japofran
08-04-2007, 16:13:45
Vamos que si no te he dado un ejemplo es porque hace siglos que no programo y no tengo un compilador instalado para comprobar si funciona. Pero si lo quieres lo más sencillo posible prueba esto. Imaginemos que la variable se llama "texto", entonces la habrás definido así:

<blockquote>char texto[N];</blockquote>

O así:

<blockquote>char *texto;</blockquote>

En este segundo caso deberías haber reservado un espacio en memoria por ejemplo con la función malloc(), aunque puede que no hayas llegado a eso todavía. En cualquier caso prueba esto para hacer lo que quieres:

<blockquote><b>*texto="hola";</b></blockquote>

Supongo que hasta ahora lo habrás intentado sin el *, entonces te daba error porque texto es un puntero y "hola" no es una dirección de memoria.

Danielk_dk
10-04-2007, 19:16:22
<p>Gracias!!!</p>