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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| //---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//---------------------------------------------------------------------------
void usage(void){
puts("strictement: monprog \"mauvaisechaine\" \"mauvaiscarateres\" \"bonscaracteres\"\n\
longueur de mauvaiscarateres = longueur de bonscaracteres");
}
char* myUnsafeReplaceCharsInList(char* str, const char* oldchars, const char* newchars);
void myUnsafeReplaceOneChar(char* str, char oldchar, char newchar);
int main(int argc, char* argv[]){
if(!(argc == 4 && strlen(argv[2]) == strlen(argv[3]))){
usage();
return EXIT_FAILURE;
}
else{
/* changements pour recoller la version scanf()*/
char* str = argv[1];
const char* oldchars = argv[2];
const char* newchars = argv[3];
printf("'%s' '%s' '%s'\n", str, oldchars, newchars);
myUnsafeReplaceCharsInList(str, oldchars, newchars);
printf("'%s'\n", str);
return EXIT_SUCCESS;
}
}
//---------------------------------------------------------------------------
char* myUnsafeReplaceCharsInList(char* str, const char* oldchars, const char* newchars){
int i = 0;
while(oldchars[i] != '\0'){
myUnsafeReplaceOneChar(str, oldchars[i], newchars[i]);
i++;
}
return str;
}
void myUnsafeReplaceOneChar(char* str, char oldchar, char newchar){
int i = 0;
while(str[i] != '\0'){
if(str[i] == oldchar){
str[i] = newchar;
}
i++;
}
} |
Partager