SOS
Publicado por A (3 intervenciones) el 29/02/2016 13:03:54
Hola, escribo porque necesito ayuda en este programa. Este programa concatena s2 en s1, de tal modo que s1
quedaría modificado. Por ejemplo: mi_strcat("Hola ","mundo"), el resultado sería "Hola mundo", y "Hola", pasaría a ser ese resultado. No sé por qué pero en las pruebas, tras ejecutar la función s1 no modifica su estado, el resultado lo da correcto, pero al igualar s1 y el resultado falla. Pd: mi_strlen calcula el nº de caracteres de la cadena( versión propia de strlen).
quedaría modificado. Por ejemplo: mi_strcat("Hola ","mundo"), el resultado sería "Hola mundo", y "Hola", pasaría a ser ese resultado. No sé por qué pero en las pruebas, tras ejecutar la función s1 no modifica su estado, el resultado lo da correcto, pero al igualar s1 y el resultado falla. Pd: mi_strlen calcula el nº de caracteres de la cadena( versión propia de strlen).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
char* mi_strcat(char* s1,char*s2){
char* aux;
int i;
int y;
int s2len=mi_strlen(s2);
int s1len=mi_strlen(s1);
aux= (char*)malloc((s1len+s2len)* sizeof(char*));
if(aux){
for(i=0;i<s1len;i++){
*(aux+i)=*(s1+i);
}
for(y=0;y<s2len;y++){
*(aux+y+s1len)=*(s2+y);
}
s1=aux;
//Otra forma??
// for(y=0;y<mi_strlen(aux);y++){
// *(s1+y)=*(aux+y);
// }
}
return s1;
}
Valora esta pregunta


0