Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ejercicio 26 parte A, TP6 #65

Open
pelufoo opened this issue Sep 24, 2024 · 2 comments
Open

ejercicio 26 parte A, TP6 #65

pelufoo opened this issue Sep 24, 2024 · 2 comments

Comments

@pelufoo
Copy link

pelufoo commented Sep 24, 2024

tengo otra duda con este ejercicio parte A porque no entendi la version de la solucion y creo que es bastante distinta a la mia debido a que modulariza varias veces, y yo ni una vez pero igual me da ok en el test. Entonces queria ver si esta bien mi algoritmo en terminos de eficiencia y estilo mas que nada.

EL ENUNCIADO:
Escribir la función insertaDesde, que recibe dos strings (null terminated) y un carácter. Al primer string se le inserta el segundo a partir de la primera aparición del carácter indicado. Si el carácter no aparece en el primer string, el mismo no debe ser alterado.

Ejemplo 1:
char str1[20] = "manuel";
char str2[] = "javi";
insertaDesde(str1, str2,’n’);
printf("%s\n",str1); // muestra majavi

Ejemplo 2:
char str1[20] = "manuel";
insertaDesde(str1, "javi" ,’l’);
printf("%s\n",str1); // muestra manuejavi

Ejemplo 3:
char str1[20] = "manuel";
char str2[] = "javi";
insertaDesde(str1, str2,’j’);
printf("%s\n",str1); // muestra manuel (sin modificaciones porque ‘j’ no aparece en la primer palabra

MI ALGORITMO:

void insertaDesde(char * s1, const char * s2, char c){
    while(*s1){  //el while corta cuando llegue al final de s1 sabiendo que vas a ser null terminated el nuevo s1
        if(*s1 != c){   //si s1 no es la letra que busco cambio el puntero al siguiente char
            s1++;
        }else{  //caso que lo encuentra piso s1 con s2 hasta llegar al final de s2
            while(*s2){
                *s1 = *s2;
                s1++;
                s2++;
            }
            *s1 = '\0';  //hago el nuevo s1 NULL terminated asi tambien corta el primer while 
        }
    }
}



@ImNotGone
Copy link
Contributor

parece estar bien

@pelufoo
Copy link
Author

pelufoo commented Sep 24, 2024

Genial muchas gracias!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants