Comparaison de chaînes de caractères
Résolu/Fermé
A voir également:
- Comparaison de chaînes de caractères
- Caractères ascii - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractères spéciaux clavier azerty - Guide
- Exemple de mot de passe à 8 caractères - Guide
- Caractères spéciaux - Guide
1 réponse
Bonjour,
Je pense qu'il faudrait ajouter le caractère de fin de chaîne à la fin du buffer reçu :
int nOctetsRecus = recv(sock,buffer,sizeof(buffer),0);
buffer[nOctetsRecus]="\0";
Tu peux tester la différence en affichant le strlen() du buffer reçu, sans l'ajout du "\0", et avec ; tu devrais voir la différence de taille...
Je pense aussi que tu devrais l'envoyer en spécifiant le strlen, plutot que le sizeof :
send(sock,buffer,strlen(buffer),0);
D'ailleurs, cette seconde modif rendra peut-être l'ajout du "\0" inutile...
A tester...
C'est OK maintenant ?
Cordialement, M.
Je pense qu'il faudrait ajouter le caractère de fin de chaîne à la fin du buffer reçu :
int nOctetsRecus = recv(sock,buffer,sizeof(buffer),0);
buffer[nOctetsRecus]="\0";
Tu peux tester la différence en affichant le strlen() du buffer reçu, sans l'ajout du "\0", et avec ; tu devrais voir la différence de taille...
Je pense aussi que tu devrais l'envoyer en spécifiant le strlen, plutot que le sizeof :
send(sock,buffer,strlen(buffer),0);
D'ailleurs, cette seconde modif rendra peut-être l'ajout du "\0" inutile...
A tester...
C'est OK maintenant ?
Cordialement, M.
29 juil. 2010 à 08:43
Il faut faire attention à ne pas écrire à l'extérieur de la chaîne. De plus ce n'est pas = "\0" qu'il faut mettre mais ='\0'.
D'ailleurs, cette seconde modif rendra peut-être l'ajout du "\0" inutile...
Non, ou alors faudrait mettre : send(sock, buffer, strlen(buffer)+1,0);
Cdlt,
29 juil. 2010 à 09:26
29 juil. 2010 à 16:25
30 juil. 2010 à 03:57
Merci de votre aide, bonne soirée.
Raphaël.