Bonsoir,
Je d�bute en C++ (exercice Mot Myst�re sur OC) et malgr� mes nombreuses recherches sur internet, je ne comprends pas.
Je voudrais supprimer les accents d'une cha�ne. Ci dessous un extrait de code qui fonctionne, si j'indique dans le code : mot="�t�"
Ca fonctionne, le r�sultat est :
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 int main() { string mot; mot = "été"; cout << "Mot avant : " << mot << endl; for (int i = 0; mot[i] != '\0'; i++) { if (mot[i] == 'é') { mot[i] = 'e'; } }; cout << "Mot apres : " << mot << endl; return 0; }
Mot avant : �t�
Mot apres : ete
Maintenant, si je demande une saisie du mot :
Ca ne fonctionne pas :
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 int main() { string mot; cin >> mot; cout << "Mot avant : " << mot << endl; for (int i = 0; mot[i] != '\0'; i++) { if (mot[i] == 'é') { mot[i] = 'e'; } }; cout << "Mot apres : " << mot << endl; return 0; }
Mot avant : �t�
Mot apres : �t�
J'ai essay� diff�rentes solutions propos�es sur le web, transformer en tableau de char, les pointeurs, utilisation de c_str()... : je n'y arrive pas... Et surtout, il y a un truc qui m'�chappe...
Merci pour vos �l�ments d'explication...
Nb : en fait, je m'en sort avec les codes ascii
Mais l� encore, le � avec cin a une valeur -126; en l'affectant � la variable dans le code : -23 avec un caract�re � ?!?!
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
18 int main() { string mot; int x; cin >> mot; cout << "Mot avant : " << mot << endl; for (int i = 0; mot[i] != '\0'; i++) { x = mot[i]; if (x == -126) { mot[i] = 'e'; } }; cout << "Mot apres : " << mot << endl; return 0; }
Merci
Partager