On suppose que dans la variable Buffer, à un moment, on a "LeMot" precedé et suivit d'un nombre inconnu de caracteres inconnus.
Au moment ou on rencontre "LeMot" on entre dans le if.
Le probleme est que je ne rentre jamais dans le if, alors que Buffer contient bien "LeMot". Pourtant, en fesant du pas à pas, je vois bien qu'a un moment, Ligne contient bien "LeMot"...
Je vois vraiment pas ou est le probleme, et je suis sur que vous allez le trouver en 5 minutes (bah oui, sa doit etre tout bete, mais je vois vraiment pas =/)
Merci à tous ceux qui m'aiderons, ou essayerons ;)
__________________________
Il faut arreter l'informatique le jour où on trouve 1024 grammes dans un kilo
Ah mais j'ai comrpis ! strcmp n'est pas magique non plus, elle prend tout ce qu'elle vois avant \ 0 dans les deux chaînes et si c'est pareil elle renvoie 0
Hors, ce n'est pas pareil, puisque avant LeMot, il y a un nombre inconnu de caractère... ce qu'il te faudrait, c'est faire une regex (expression régulière) mais je sais pas comment faire en C/C++...
Mais bon, si tu as besoin de faire ce genre de chose, c'est que quelque part ton programme est mal conçu... Pourquoi buffer est trop grand ?
__________________________
[col]Woufeil[/col] et respectez la charte.
Woufeuil > "Hors, ce n'est pas pareil, puisque avant LeMot, il y a un nombre inconnu de caractère..."
Bah nan, tout le systeme des deux boucle imbriquée, juste avant le if sert justement a ce que la variable Ligne contienne "LeMot" et uniquement ça, rien avant, rien apres, et sa a l'air de fonctionner quand je debogue pas à pas, mais malgré sa, je rentre jamais dans mon if =/
__________________________
Il faut arreter l'informatique le jour où on trouve 1024 grammes dans un kilo
Qu'est ce que Buffer ? Et pourquoi avoir besoin de 2 boucles imbriquées pour copier un tableau de caractères dans un autre ? Un seul suffit.
Pour faire le test d'égalité dans les boucles d'affectation ? Il serrait plus logique de ne faire le test qu'une fois toutes les affectations terminées.
On ne peut pas deviner pourquoi ça ne marche pas car on ne peut pas deviner ce qui se trouve dans Buffer.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Dans Buffer il y a un tat de caracteres inconnus, et dans ce tat de caracteres ce trouve "LeMot".
Le but des deux boucles est d'isoler "LeMot" dans la variable Ligne et de rentrer dans le if a la rencontre de "LeMot"
__________________________
Il faut arreter l'informatique le jour où on trouve 1024 grammes dans un kilo
Est ce que dans Buffer, il y a un \ 0 après "LeMot" ?
Il faut que ce soit qqch dans le style : "aerzerpoiLeMot" + \ 0 + "fmdqkjfkfdj";
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Dans Buffer il peut y avoir des lettres (majuscule minuscule) des espaces, des caracteres accentués, et certains caracteres speciaux comme ></\&:.!,?;
Peut etre d'autres caracteres speciaux, mais je ne crois pas.
Buffer sera amené à etre modifié plusieur fois dans le programme, et la fonction sera apelée plusieur fois, mais dans l'exemple que j'utilise pour le débogage, Buffer contient seulement des lettres et des espaces.
;)
__________________________
Il faut arreter l'informatique le jour où on trouve 1024 grammes dans un kilo
Il faut qu'après LeMot, Buffer contienne \ 0 (sans espace, je peux pas l'afficher dans le forum, un bug). C'est le terminateur de chaîne en C...
En gros, pour déterminer la fin d'une chaîne, les fonctions de string.h cherchent le caractère \ 0 (toujours sans espace) de code ASCII 0. De même, la fonction printf affiche tout le tableau de caractère jusqu'à \ 0 si tu lui demande d'afficher une chaîne. Quand tu saisis une chaine entre "", \ 0 est rajouté automatiquement.
Tout ça pour t'expliquer la nécéssité de ce caractère après LeMot dans Buffer...
__________________________
[col]Woufeil[/col] et respectez la charte.