Bonsoir à tous.
Je viens encore de me faire prendre au piège de la condition if.
Soient les QStrings suivants:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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!