Recherche bloquante strstr

new0staff Messages postés 27 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 3 novembre 2004 - 28 oct. 2004 à 18:07
new0staff Messages postés 27 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 3 novembre 2004 - 3 nov. 2004 à 08:54
Bonjour!

Dans une partie de mon code, j'utilise l'instruction strstr qui suit :

char* preply = strstr((LPCTSTR)strReply, "RTSP/1.0 ") + 9;
strncpy(reply, preply, 3);

Le problème est que si le mot clé que je cherche ne se trouve pas dans la chaine de caractères, ça bloque!!

Comment faire?

En vous remeçiant à l'avance, passez une bonne soirée...
haffa

6 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
28 oct. 2004 à 18:21
char* preply = strstr((LPCTSTR)strReply, "RTSP/1.0 ") + 9;
if(preply)
strncpy(reply, preply, 3);
0
new0staff Messages postés 27 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 3 novembre 2004
29 oct. 2004 à 16:59
Salut!

J'ai essayé mais ça ne marche pas! Est-ce qu'il faut initialiser le pointeur avant chaque recherche??!

haffa
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
1 nov. 2004 à 16:15
Si "RTSP/1.0 " n'est pas trouvé, strstr renvoie NULL, et donc tu appelles strcpy avec NULL, normalement ca devrait planter, ca ne plante pas?
0
new0staff Messages postés 27 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 3 novembre 2004
2 nov. 2004 à 08:37
Salut!

Si ça plante (accès mémoire impossible....)!!

haffa
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 nov. 2004 à 09:28
strReply ne vaut pas 0 par hasard?
0
new0staff Messages postés 27 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 3 novembre 2004
3 nov. 2004 à 08:54
Salut!

strReply à toujours une valeur. C'est la chaine de caractères envoyée par un serveur en réponse à la requête que je lui envoie.

Si la réponse est positive, je suis sûr de trouver la chaine d caractère "RTSP..."; par contre si la réponse est négative, cette chaine n'est pas présente, et c'est dans ce cas que ça plante!

et puis ça plante avant même de passer à "strncpy(reply, preply, 3); ".

C'est peut être mieux d'effectuer une recherche caractère par caractère! ça engendrerais plus de ressources processeurs mais au moins je peut efectuer un contrôle d'erreur...

Qu'est-ce que t'en pense?!
Merci!

haffa
0
Rejoignez-nous