elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  cual es el error en este codigo en el lenguaje de programacion c??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: cual es el error en este codigo en el lenguaje de programacion c??  (Leído 1,607 veces)
fedemaxrul

Desconectado Desconectado

Mensajes: 9


Ver Perfil
cual es el error en este codigo en el lenguaje de programacion c??
« en: 20 Noviembre 2016, 17:43 pm »

el programa es muy simple, quiero colocar la cadena s2 al final de la cadena s1, no me funciona, me muestra las cadenas originales
Código
  1. #include <stdio.h>
  2. void strcat(char*s1,char*s2);
  3. int main()
  4. {
  5. char s1[50]="federico\0";
  6. char s2[]="agustina\0";
  7. printf("%s\n",s1);
  8. printf("%s\n\n",s2);
  9. strcat(s1,s2);
  10. printf("%s\n",s1);
  11. printf("%s\n",s2);
  12. return 0;
  13. }
  14. void strcat(char*s1,char*s2)
  15. {
  16.    while(*s1++);
  17.    while(*s2)
  18.    {
  19.        *s1++ = *s2++;
  20.    }
  21. }


Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 20 Noviembre 2016, 17:49 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: cual es el error en este codigo en el lenguaje de programacion c??
« Respuesta #1 en: 20 Noviembre 2016, 18:06 pm »

Código:
while(*s1++);

cuando haces esto, el puntero queda en el '\0'... así que cuando vas a

Código:
*s1++ = *s2++;

escribes justo despues del '/0'

Citar
federico\0agustina\0

y bueno, creo que entiendes las consecuencias en el printf

aprende a usar el debugger de tu ide para poder detectar estos problemas


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines