[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