Je trouve pas ou est le probleme
info2009
Messages postés
851
Statut
Membre
-
info2009 Messages postés 851 Statut Membre -
info2009 Messages postés 851 Statut Membre -
Bonjour,
voilà le code source de mon programme qui est en c++builder 6
st=Form1->Memo1->Text;
st = st.Trim();
while ((x=st.Pos(" ")) > 0 )
{text= st.SubString(1,x);
int I = CompareStr(text,"salut");
if (I== 0)
{ ShowMessage ("hello");
}
st.Delete(1,x);
st = st.TrimLeft(); }
dans ce programme j'essaye de comparer deux chaines de caractère une se trouve dans un memo et l'autre est une constante ...avec le code source que j'ai écrie ça ne marche pas la comparaison ..est ce que vous pouvez m'aidez a trouvé ou est le probleme
merci d'avance
voilà le code source de mon programme qui est en c++builder 6
st=Form1->Memo1->Text;
st = st.Trim();
while ((x=st.Pos(" ")) > 0 )
{text= st.SubString(1,x);
int I = CompareStr(text,"salut");
if (I== 0)
{ ShowMessage ("hello");
}
st.Delete(1,x);
st = st.TrimLeft(); }
dans ce programme j'essaye de comparer deux chaines de caractère une se trouve dans un memo et l'autre est une constante ...avec le code source que j'ai écrie ça ne marche pas la comparaison ..est ce que vous pouvez m'aidez a trouvé ou est le probleme
merci d'avance
A voir également:
- Je trouve pas ou est le probleme
- Ou se trouve le presse papier - Guide
- Ou trouver adresse mac - Guide
- Pourquoi ma tv ne trouve pas toutes les chaînes - Guide
- Ou se trouve le presse papier sur pc - Guide
- Où se trouve mon adresse url ? - Guide
7 réponses
Pas trop vite là!
"salut" et "salut", c'est pareil.
"salut" et "salut ", c'est différent. Remarque l'espace à la fin de la chaîne.
L'espace est un caractère ce qui rend la chaîne "salut " aussi différente de "salut" que par exemple "salutm" ou "salut3".
Il faudrait peut-être que tu appliques un Trim sur ta variable text avant de la comparer.
Autre note, je ne sais pas trop c'est quoi ta fonction CompareStr mais j'utilise normalement strcmp().
Bonne chance!
"salut" et "salut", c'est pareil.
"salut" et "salut ", c'est différent. Remarque l'espace à la fin de la chaîne.
L'espace est un caractère ce qui rend la chaîne "salut " aussi différente de "salut" que par exemple "salutm" ou "salut3".
Il faudrait peut-être que tu appliques un Trim sur ta variable text avant de la comparer.
Autre note, je ne sais pas trop c'est quoi ta fonction CompareStr mais j'utilise normalement strcmp().
Bonne chance!
(x=st.Pos(" ")) veut bien dire que x prend la valeur de la position du 1er espace du texte st. donc s'il n'y a pas d'espace dans le texte source, x sera toujours egale à zéro, non?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
avant je vous remercie infiniment de me répondre
non la partie qui ne marche pas c'est celle là
int I = CompareStr(text,"salut");
if (I== 0)
{ ShowMessage ("hello");
}
par contre le code dont tu parle il fonctionne très bien si par exemple j'écris dans le memo "salut tout le monde "
au début st= "salut tout le monde"
x prend la position du après le mot salut
puis text = "salut" mais le problème si je fait la comparaison suivante ne fonctionne pas pas
int I = CompareStr(text,"salut"); malgrés que text= "salut "
non la partie qui ne marche pas c'est celle là
int I = CompareStr(text,"salut");
if (I== 0)
{ ShowMessage ("hello");
}
par contre le code dont tu parle il fonctionne très bien si par exemple j'écris dans le memo "salut tout le monde "
au début st= "salut tout le monde"
x prend la position du après le mot salut
puis text = "salut" mais le problème si je fait la comparaison suivante ne fonctionne pas pas
int I = CompareStr(text,"salut"); malgrés que text= "salut "