Accueil > Forum > > > > probleme de strcpy ou de strcmp ?
probleme de strcpy ou de strcmp ?
lundi 26 mai 2008 à 09:54:09 |
probleme de strcpy ou de strcmp ?

schap25
|
Bonjour, J'ai un petit soucis, je cherche a comparé deux chaine de caractère donc je commence par faire : strcpy(mot,"MIME-Version: 1.0 "); Le deuxieme mot est recherché caractere par caractere dans un texte afin d'y etre comparé donc plus loin je fais : if(!(strcmp(s_read,mot))) { blabla++; } En gros, j'ai l'impression que le code ne prend pas en compte le ".0" pour faire la comparaison, et donc je ne rentre jamais dans le if, malgré que s_read soit identique a mot (normalement), car quand je compare seulement avec "MIME-Version", ca fonctionne .. (c'est pour un code de recherche de mot dans un fichier txt). Si quelqu'un pouvai m'aider .. 
|
|
lundi 26 mai 2008 à 10:03:35 |
Re : probleme de strcpy ou de strcmp ?

schap25
|
Pardon, je viens de voir que strcmp s'arretai au premier 0 trouvé, je sais donc d'ou vien le probleme, mais je ne vois pas quel fonction je doit utilisé pour remplacé strcmp..
|
|
lundi 26 mai 2008 à 11:08:04 |
Re : probleme de strcpy ou de strcmp ?

jfrancois
|
Bonjour, 1) Il ne faut pas confondre le caractère "0" (zéro) avec le code binaire 0 qui marque la fin d'une chaîne ! Le contenu de la chaîne "mot" peut contenir autant de caractères "0" que possible, ça n'arrêtera pas la comparaison. 2) Il y a un espace derrière le "0" dans le code strcpy(mot,"MIME-Version: 1.0 ");. S'il n'existe pas aussi dans s_read, la comparaison sera toujours négative ! Jean-François
|
|
lundi 26 mai 2008 à 11:32:48 |
Re : probleme de strcpy ou de strcmp ?

schap25
|
Ah oki, donc le mystere est encor plus grand XD La recherche marche quand je cherche "Mime-Version 1" mais ne marche pas avec "Mime-Version 1." ou "1.0" Mon code c'est un peu près ca (d'après une source trouvé sur ce site, très legerement modifier)
while(!feof(file)) { n=getw(file); l_file++; } //On multiplie par 4 pour obtenir le nombre d'octets l_file=l_file*4; //On ferme fclose(file); //Ouverture en ASCII file=fopen(file_t,"r"); cout<<"Le fichier existe et contient "<<l_file<<" caractère "<<endl; }
for (t=0;t<=(l_file-l_mot);t++) { //On place le pointeur à la position t (initialement nulle puis incrémentée) fseek(file,t,0); //On récupère l_mot caractères à partir de cette position //(autant de caractères que de caractères dans le mot) //Attention, le deuxième argument est 'l_mot+1' pour récupérer l_mot caractères ! fgets(s_read,l_mot+1,file); //Si les chaînes mot et s_read sont identiques if(!(strncmp(s_read,mot,strlen(mot)))) { //On incrémente alors ref (qui contient le nombre de chaînes identiques trouvées) ref++; } }
|
|
lundi 26 mai 2008 à 11:34:32 |
Re : probleme de strcpy ou de strcmp ?

schap25
|
ps : le probleme peut-il venir du point ?
|
|
lundi 26 mai 2008 à 11:42:58 |
Re : probleme de strcpy ou de strcmp ?

schap25
|
Arf encor pire, quand je cherche uniquement "1.0" ca marche .... Je comprend vraiment pas la .. (desolé pour les 3 messages d'affilé)
|
|
lundi 26 mai 2008 à 11:46:44 |
Re : probleme de strcpy ou de strcmp ?

jfrancois
|
Certainement pas ! Seul le zéro binaire stoppe la comparaison. Est-ce qu'il n'y aurait pas un problème de casse (majuscules/minuscules) ? stricmp() pour ne pas tenir compte de la casse. Jean-François
|
|
lundi 26 mai 2008 à 11:48:51 |
Re : probleme de strcpy ou de strcmp ?

buno
|
Salut, Une petite précision concernant les fonctions de comparaison: elles sont case-sensitives. Pour ne pas prendre en compte les majuscules et miniscules, il faut utiliser stricmp() Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai... Le site de mon mariage
|
|
lundi 26 mai 2008 à 11:54:40 |
Re : probleme de strcpy ou de strcmp ?

schap25
|
Merci a vous ! J'ai trouvé la solution ... vraiment bete ... L'erreur venait seulement du fait que j'avai initialisé mot comme ca .. char mot[16]; strcpy(mot,"MIME-Version: 1.0");
Et "Mime-version: 1.0" ca fai + de 16 caractere ... *sigh* vraiment desolé .. ca m'apprendra..
|
|
lundi 26 mai 2008 à 12:56:48 |
Re : probleme de strcpy ou de strcmp ?

jfrancois
|
En tout cas c'est une manipulation de fichier qui est extrèmement bizarre !!! - Une première lecture pour connaître la taille du fichier via la lecture d'entiers : getw() lit un "int" = 4 octets = 4 caractères, donc une taille de fichier fausse 3 fois sur 4 (le fichier n'a aucune raison d'avoir une taille systématiquement multiple de 4). - Une seconde lecture qui lit des blocs de caractères en se décallant d'un caractère à chaque fois : si "l_mot" = 18 caractères, grosso-modo le fichier est lu 18 fois ! Comme c'est un fichier texte vu l'open("r") il suffit de faire (si la sous-chaîne n'est sensée être trouvée qu'une seule fois par ligne) : l_file = 0; // si besoin de la taille du fichier par la suite ref = 0; char* szMot = "MIME-Version: 1.0"; FILE* pFile = fopen(file_t,"r"); if (pFile == NULL) return; // ERREUR char szLigne[1024]; // buffer de lecture d'une ligne while(true) { if (fgets(szLigne,1024,pFile) == NULL) break; // EOF l_file += strlen(szLigne) + 1; // +1 pour NL if (strstr(szLigne,szMot)) ++ref; } fclose(pFile); cout << szMot << " trouvé " << ref << " fois" << endl;
Jean-François
|
|
Cette discussion est classée dans : mot, probleme, comparé, strcpy, strcmp
Répondre à ce message
Sujets en rapport avec ce message
Probleme de gestion de fichier et gestion de l ehrue en C [ par croft ]
Mr.croftG un probleme avec un fichier texte contenant un mot sur chaque ligne .Il me faudrait un code qui pourrrait me ressortir aleatoirment un mot d
Probleme d'ecriture et copie fichier texte [ par metek ]
SalutMon but est d'etudier un fichier txt de rechercher un mot,le localiser et enfin de copier le rest de la ligne(donc les mots qui le suivent sur la
probleme avec le fgetc..... [ par raziel62 ]
salut,j'ai un prob en C avec la fonction fgetc. Je voudrai mettre dans une variable le contenu d'un fichier .txt puis l'afficherj'ai fait ce code mais
probleme pour lier 2 Form [ par hawk671 ]
slt j'ai un probleme pour lier 2 form a l'aidee d'1 bouttton.moi g procédais de la maniere suivante:#include void __fastcall TForm1::ButtonOKClick(TOb
probleme strcmp [ par ben3020 ]
Bonjour à tous Je suis nouveau ds la prog C et j'ai un probleme ave la fonction strcmp : #include #include int main(void) { int cnp; char filename
remplacer les strcpy, strcat et autres par d'autres fonctions [ par ebooserge ]
salut a tous,en fait mon probleme est plus genant que prise de tete mais je vous le soumets quand meme.quelles fonctions peut-on utiliser a la place d
Probleme compilation de bibliotheque partagée [ par aekold ]
Salut,J'ai un gros probleme en c++. Voila clairement mon probleme en résumé:dans "dictionnaire.h" :#include "mot.h"class dictionnaire{ mot *_mot;}
Probleme pour un pendu [ par jejehero ]
Salut,J'avais demandé de l'aide pour un probleme de calcul de moyenne, maintenant c'est pour un pendu(sans image je le précise), il ne trouve plus que
probleme urgent en C [ par cyrina84 ]
Bonjour, jai un probleme , c'est que j'ai des mots stockésdans une table de hacahge, et des séquences stockés dans une liste chainées. Le probleme c'e
probleme d'execution [ par cyrina84 ]
Bonjour, jai un probleme au niveau de mon programme. quand je fais le run il maffiche aucune e
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|