Buenas , me gustaria saber si estan bien estos dos ejercicios.
/*Escribir una función elimina que recibe dos strings y elimina del primero todos los caracteres
que aparecen en el segundo string.*/
/*
char s[] = "Un string. Con diversas letras y simbolos!!";
elimina(s, "aeiou"); // s es ahora "Un strng. Cn dvrss ltrs y smbls!!"
elimina(s, " !."); // s es ahora "UnstrngCndvrssltrsysmbls"
elimina(s, "aeiou"); // s ahora no cambia
*/
#define MAX 256
void elimina(char * s1, char * s2){
char appearances[MAX] = {0};
while( *s2 != 0 ){
apearances[*s2] = 1;
s2++;
}
int dim = 0;
for (int i = 0 ; s1[i] != 0 ; i++){
if(!(apearances[s1[i]])){
s1[dim++]= s[i];
}
}
s1[dim] = 0;
}
/*
Escribir una función eliminaN que, dados un string, una letra y un entero n elimina del string la
aparición de esa letra (sin importar si es minúscula o mayúscula) y los n caracteres siguientes a la misma.
Si el caracter recibido no es una letra o si el n no es positivo, no debe modificar el string.
*/
void eleminaN(char * string , char c , int n){
if(!isalpha(c) || n < 0){
return;
}
int dim = 0;
int flag = 0
for (int i = 0 ; string[i] ; i++){
if(tolower(string[i]) == tolower(c)){
flag = n;
}else if(flag){
flag--;
}else{
string[dim++] = string[i];
}
}
string[dim] = 0;
}
Buenas , me gustaria saber si estan bien estos dos ejercicios.