[C con Clase] struct y los char

Steven Davidson srd4121 en njit.edu
Dom Jul 3 16:42:04 CEST 2011


Hola Gustavo,

2011/7/3 Gustavo Velazquez <programacion en goosfancito.com.ar>

> Hola.
> No estoy acostumbrado al c++ ni al c con respecto a las cadenas de
> caracteres.
>
> Hago esto pero no me anda. Que estoy haciendo mal?
>

Veamos el código fuente.


>
> ----8<---------------------------------
>
> #include <iostream>
> using namespace std;
>
> struct stDireccion{
>        char cCalle[10];
>        char cNumero[25];
>        char cCodigoPostal[7];
>
>        void asignarCalle(const char *cValor) {cCalle = cValor;}
>

Esta asignación es entre punteros, pero no la información de la cadena.
Tienes que copiar cada carácter de 'cValor' a cada carácter de 'cCalle'. Si
no quieres hacer esto explícitamente, entonces te aconsejo que uses la
función estándar 'strcpy()' o incluso 'strncpy()' o posiblemente 'memcpy()'
para copiar el contenido de la memoria; las tres funciones se declaran en
<cstring>. Por ejemplo,

strncpy( cCalle, cValor, 10 );

Para más información acerca de estas funciones y otras en <cstring>, puedes
consultar la referencia en nuestra página yendo a:
http://c.conclase.net/librerias/?ansilib=string#inicio


>        } ;
> //------------------
>
> int main(){
>        stDireccion persona;
>
>        persona.asignarCalle("hola");
>        cout << persona.cCalle;
>        return 0;
>        }
>

Para más información acerca de las cadenas de caracteres, de los array, y de
los punteros, echa un vistazo a estos capítulos en nuestro curso:
-  8: http://c.conclase.net/curso/index.php?cap=008#inicio
- 10: http://c.conclase.net/curso/index.php?cap=010#inicio
- 12: http://c.conclase.net/curso/index.php?cap=012#inicio
- 15: http://c.conclase.net/curso/index.php?cap=015#inicio
- 17: http://c.conclase.net/curso/index.php?cap=017#inicio


Espero haber aclarado la duda.

Steven
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110703/8201e2e2/attachment-0001.html>


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