Bonjour,

J'ai un bug lorsque je recherche l'indice où débute une sous chaine dans un char*.

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;
 
}
La valeur affiché est -1.
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" :

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;
La valeur affiché ici est bien Camera.

Je ne comprend pas....

Merci d'avance,
funky