La fonction ci-dessous doit être remplacer les caractères trouvés dans s
avec des espaces si elles se trouvent dans toBlank
:c - la comparaison des chaînes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* function blank replaces all characters in the parameter string s
* that are present in the parameter string toBlank with space characters.
* for example, if s were the string "abcdef" and toBlank the string
* "bde", then after calling this function, s would be "a c f" */
void blank(char *s, const char *toBlank){
int i=0, j=0;
while (s[i] != '\0'){
if (s[i] == toBlank[j]){
s[i] = ' ';
}else{
j++;
}
i++;
}
printf("%s", s);
}
int main(void){
blank("abcdef", "bde");
}
Le problème est, s
est de ne jamais être modifiés. Quelqu'un peut-il expliquer ce qui se passe?
S'il vous plaît décrire plus en détail « ne fonctionne pas » (en éditant votre question), et choisir un meilleur titre - ce qui est de remplacer les choses dans une chaîne, pas la comparaison des chaînes . – Mat