Hola Gustavo,<br><br><div class="gmail_quote">2011/7/3 Gustavo Velazquez <span dir="ltr"><<a href="mailto:programacion@goosfancito.com.ar">programacion@goosfancito.com.ar</a>></span><br><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
Hola.<br>
No estoy acostumbrado al c++ ni al c con respecto a las cadenas de<br>
caracteres.<br>
<br>
Hago esto pero no me anda. Que estoy haciendo mal?<br></blockquote><div> </div><div>Veamos el código fuente.</div><div> </div><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote">
<p>
<br>
----8<---------------------------------<br>
<br>
#include <iostream><br>
using namespace std;<br>
<br>
struct stDireccion{<br>
        char cCalle[10];<br>
        char cNumero[25];<br>
        char cCodigoPostal[7];<br>
<br>
        void asignarCalle(const char *cValor) {cCalle = cValor;}<br></p></blockquote><div> </div><div>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,</div>
<div> </div><div>strncpy( cCalle, cValor, 10 );</div><div> </div><div>Para más información acerca de estas funciones y otras en <cstring>, puedes consultar la referencia en nuestra página yendo a: <a href="http://c.conclase.net/librerias/?ansilib=string#inicio">http://c.conclase.net/librerias/?ansilib=string#inicio</a></div>
<div> </div><blockquote style="margin: 0px 0px 0px 0.8ex; padding-left: 1ex; border-left-color: rgb(204, 204, 204); border-left-width: 1px; border-left-style: solid;" class="gmail_quote"><p>
        } ;<br>
//------------------<br>
<br>
int main(){<br>
        stDireccion persona;<br>
<br>
        persona.asignarCalle("hola");<br>
        cout << persona.cCalle;<br>
        return 0;<br>
        }<br>
</p></blockquote><div> </div><div>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:</div><div>-  8: <a href="http://c.conclase.net/curso/index.php?cap=008#inicio">http://c.conclase.net/curso/index.php?cap=008#inicio</a></div>
<div>- 10: <a href="http://c.conclase.net/curso/index.php?cap=010#inicio">http://c.conclase.net/curso/index.php?cap=010#inicio</a></div><div>- 12: <a href="http://c.conclase.net/curso/index.php?cap=012#inicio">http://c.conclase.net/curso/index.php?cap=012#inicio</a></div>
<div>- 15: <a href="http://c.conclase.net/curso/index.php?cap=015#inicio">http://c.conclase.net/curso/index.php?cap=015#inicio</a></div><div>- 17: <a href="http://c.conclase.net/curso/index.php?cap=017#inicio">http://c.conclase.net/curso/index.php?cap=017#inicio</a></div>
<div> </div><div> </div><div>Espero haber aclarado la duda.</div><div> </div><div>Steven</div><div> </div></div>