Bonjour,
Voici mon problème :
comment remplacer l'antislash par un double antislash
exemple pour : C:\dossier\I\toto.text
je voudrais faire ceci :
C:\\dossier\\I\\toto.text

J'avais trouve cette fonction pour le remplacement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
52
53
54
55
56
57
58
/* Retourne une nouvelle chaîne dans laquelle toutes les occurrences d'une chaîne spécifiée dans l'instance actuelle sont remplacées par une autre chaîne spécifiée. */
char* replace(char* text, char* replace, char* element) {
  int i, j, k;
 
  int searchSize = strlen(text);
  int replaceSize = strlen(replace);
  int size = strlen(element);
 
  char* ret;
 
  if (!searchSize) {
    ret = malloc(size + 1);
    for (i = 0; i <= size; i++) {
      ret[i] = element[i];
    }
    return ret;
  }
 
  int retAllocSize = (strlen(element) + 1) * 2; 
  ret = malloc(retAllocSize);
 
  int bufferSize = 0; 
  char* foundBuffer = malloc(searchSize); 
 
  for (i = 0, j = 0; i <= size; i++) {
    if (retAllocSize <= j + replaceSize) {
      retAllocSize *= 2;
      ret = (char*) realloc(ret, retAllocSize);
    }
 
    else if (element[i] == text[bufferSize]) {
      foundBuffer[bufferSize] = element[i];
      bufferSize++;
 
 
      if (bufferSize == searchSize) {
        bufferSize = 0;
        for (k = 0; k < replaceSize; k++) {
          ret[j++] = replace[k];
        }
      }
    }
 
    else {
      for (k = 0; k < bufferSize; k++) {
        ret[j++] = foundBuffer[k];
      }
      bufferSize = 0;
 
      ret[j++] = element[i];
    }
  }
 
 
  free(foundBuffer);
 
  return ret;
}
Merci pour votre aide