Remplacements en série avec QString
Bonsoir à tous.
Je viens encore de me faire prendre au piège de la condition if.
Soient les QStrings suivants:
Code:
QString str1 = "§&&$$%$§&";
QString str2 = str1.append("ppp");
Je voudrai en effet remplacer les caractères de str2 par les chiffres 1, 2, 3, 4 selon la formule suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| if(str2.contains("§", Qt::CaseInsensitive))
{
str2.replace("§", "1", Qt::CaseInsensitive);
}
if(str2.contains("&", Qt::CaseInsensitive))
{
str2.replace("&", "2", Qt::CaseInsensitive);
}
if(str2.contains("%", Qt::CaseInsensitive))
{
str2.replace("%", "3", Qt::CaseInsensitive);
}
if(str2.contains("$", Qt::CaseInsensitive))
{
str2.replace("$", "4", Qt::CaseInsensitive);
}
out<<str1<<"\r\n"<<"-------------------------"<<"\r\n"<<str2<<"\r\n"; |
1- Tout d'abord, j'ai posé la contition de fin de chaine comme suit:
Code:
while(str2 != "\0")
le programme a planté. De même lorsque la condition selon laquelle chaque fois que la fin de chaine n'est pas atteinte a été posée comme suit:
Code:
while(str2.end != false)
le programme a planté.
Idem pour la condition suivante:
2- Lorsque j'ai donc enlevé ces conditions indiquant la fin de la chaine, j'ai obtenu à la compilation le remplacement SEULEMENT pour les deux derniers if.
Ainsi, je vous serai reconnaissant si vous m'aidiez à:
- Mieux indiquer la fin de la chaine.
- Comprendre pourquoi les deux premiers if ne remplacent pas les "§" et "&" respectivement.
Merci d'avance!