Changement de casse en c++
-
-
iMaTh -
iMaTh -
Bonjour,
Je voulais changer la casse d'un string en c++ pour le mètre complètement en minuscule.
1. for (int i = 0; i < calcul.size(); i++)
2. {
3. const char* a = calcul.c_str();
4. if(*(a+i) > 64 && *(a+i) < 91)
5. *(a+i) += 33;
6. }
Le problème est que avec le const > "error C3892: 'i' : vous ne pouvez pas assigner une variable const" sur la ligne 5., sans le const > "error C2440: 'initialisation' : impossible de convertir de 'const char *' en 'char *'" sur la ligne 3..
Quelqu'un voit comment faire ?
Je voulais changer la casse d'un string en c++ pour le mètre complètement en minuscule.
1. for (int i = 0; i < calcul.size(); i++)
2. {
3. const char* a = calcul.c_str();
4. if(*(a+i) > 64 && *(a+i) < 91)
5. *(a+i) += 33;
6. }
Le problème est que avec le const > "error C3892: 'i' : vous ne pouvez pas assigner une variable const" sur la ligne 5., sans le const > "error C2440: 'initialisation' : impossible de convertir de 'const char *' en 'char *'" sur la ligne 3..
Quelqu'un voit comment faire ?
A voir également:
- Changement de casse en c++
- Changer de dns - Guide
- Changement d'écriture facebook - Guide
- Changement d'heure - Guide
- Changer clavier qwerty en azerty - Guide
- Changement carte graphique - Guide
2 réponses
Bonjour,
Pour un truc qui ait une gueule de C++ plus que du C il y a:
(Oui bon, okay, tolower j'ai pas trouvé l'équivalent en C++...)
il y a certainement aussi moyen de faire une boucle sur la taille aussi...
M.
Pour un truc qui ait une gueule de C++ plus que du C il y a:
#include <cstdio> // Pour le getchar() #include <iostream> #include <string> #include <algorithm> void myToLower( char &rc ) { rc = tolower( rc ); } int main( int argc, char *argv[]) { std::string sBlabla( "BlaBla" ); std::cout << sBlabla << std:: endl; // for ( std::string::iterator iter = sBlabla.begin() ; iter != sBlabla.end() ; iter++ ) // (*iter) = tolower( *iter ); // Ou alors : (Le premier évite l'écriture de myToLower) std::for_each( sBlabla.begin(), sBlabla.end(), myToLower ); std::cout << sBlabla << std:: endl; getchar(); return 0; }
(Oui bon, okay, tolower j'ai pas trouvé l'équivalent en C++...)
il y a certainement aussi moyen de faire une boucle sur la taille aussi...
for ( unsigned int i = 0 ; i != sBlaBla.size() ; i ++ ) sBlaBla[i] = tolower( sBlaBla[i] );
M.
Cadeau
//mettre un string tout en minuscule void toLower(string *chaine) { for(unsigned int i=0; i<chaine->size(); i++) { if ( chaine->at(i) >= 65 && chaine->at(i) <= 90 ) { chaine->at(i) += 32; } } } //mettre un string tout en majuscule void toUpper(string *chaine) { for(unsigned int i=0; i<chaine->size(); i++) { if ( chaine->at(i) >= 97 && chaine->at(i) <= 122 ) { chaine->at(i) -= 32; } } }