Bonjour,
J'ai un bug lorsque je recherche l'indice où débute une sous chaine dans un char*.
La valeur affiché est -1.
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 int getIndStrStr (const char *cs, const char *ct) { int index = -1; if (cs != NULL && ct != NULL) { char *ptr_pos = NULL; ptr_pos = strstr (cs, ct); if (ptr_pos != NULL) { index = ptr_pos - cs; } } return index; } void MaFct() { ..... ........ char * bufferFichier = new char[size]; f_in.read(bufferFichier,size); int ind = getIndStrStr (bufferFichier, "Camera"); cout << endl << "Enfin voici l'indice => " << ind << endl; }
Cela vient du fait qu'il ne trouve pas "Camera" dans mon buffer (le buffer étant bien rempli).
Or j'ai écrit ce bout de code pour vérifier que le buffer contient bien la chaine "Camera" :
La valeur affiché ici est bien Camera.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cout << endl << "Buffer fichier: " << bufferFichier[8390648] << bufferFichier[8390649] << bufferFichier[8390650] << bufferFichier[8390651] << bufferFichier[8390652] << bufferFichier[8390653] << endl;
Je ne comprend pas....
Merci d'avance,
funky
Partager