Bonjour,
J'utilise la fonction suivante pour remplacer une sous-chaîne dans une chaîne.
Mais elle ne remplace que la première occurrence de la sous-chaîne ? Savez-vous où trouver une fonction qui permette de remplacer toutes les occurrences d'une sous-chaîne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 char *str_replace (char *str, char *orig, char *rep) { static char buffer[4096]; char *p; if(!(p = strstr(str, orig))) // Is 'orig' even in 'str'? return str; strncpy(buffer, str, p-str); // Copy characters from 'str' start to 'orig' st$ buffer[p-str] = '\0'; sprintf(buffer+(p-str), "%s%s", rep, p+strlen(orig)); return buffer; }
Partager