Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
325 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Transformer une minuscule en majuscule

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Transformer une minuscule en majuscule

n°2340632
Juzo13
Posté le 24-10-2019 à 22:25:54  profilanswer
 

Salut !
 
J'ai commencé la programmation en C++ il y pas très longtemps, sur Visual Studio 2019, et j'en suis au type char, mais je rencontre un petit problème..
Je souhaite transformer une minuscule en majuscule ( ou l'inverse ) à l'aide de la table ASCII, mais je n'arrive pas au résultat voulu, je ne trouve pas mon erreur ( ou la solution )..
 
http://image.noelshack.com/fichiers/2019/43/4/1571948569-cpp1.png
http://image.noelshack.com/fichiers/2019/43/4/1571948569-cpp2.png
 
Sur les photos ci-dessus, j'aimerai que mon " t " se transforme en " T " mais je ne sais pas quoi rajouter pour produire ce résultat..
Est-ce que quelqu'un pourrait me dépanner pour ce petit problème de rien du tout ? :S
 
Merci ^^
 
 

mood
Publicité
Posté le 24-10-2019 à 22:25:54  profilanswer
 

n°2340635
gilou
Modérateur
Modzilla
Posté le 24-10-2019 à 23:36:37  profilanswer
 

Pour convertir ASCII en char, faire static_cast<char>(ASCII)
 
Un petit exemple :
 

Code :
  1. #include <iostream>
  2. int main() {
  3.   char c;
  4.   std::cout << "Entrez un caractere ascii : " << std::flush;
  5.   std::cin >> std::noskipws >> c;
  6.  
  7.   int ascii = static_cast<int>(c);
  8.   if (ascii > 127 or ascii < 0) {
  9.     std::cout << "Le caractere entre n'est pas un caractère ascii!" << std::endl;
  10.   }
  11.   else if ((ascii >= 0 and ascii <= 8) or (ascii >= 10 and ascii <= 31)) {
  12.     std::cout << "Le caractere entre n'est imprimable!" << std::endl;
  13.   }
  14.   else if (ascii >= 65 and ascii <= 90) {
  15.     std::cout << "Le caractere " << c << " en majuscule : " << c << std::endl;
  16.   }
  17.   else if (ascii >= 97 and ascii <= 122) {
  18.     std::cout << "Le caractere " << c << " en majuscule : " << static_cast<char>(ascii-32) << std::endl;
  19.   }
  20.   else {
  21.     std::cout << "Le caractere " << c << " n'a pas de majuscule" << std::endl;
  22.   }
  23.  
  24.   return 0;
  25. }


 
Note: std::cin >> std::noskipws >> c;  c'est pour que les caractères comme le blanc, tab, etc soient acceptés comme une valeur possible, sinon cin les ignorera.
Note 2: la locale de ta console aura une influence.
 
A+,


Message édité par gilou le 25-10-2019 à 14:54:58

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --    In umbra igitur pugnabimus. --
n°2340660
TotalRecal​l
Posté le 27-10-2019 à 09:26:23  profilanswer
 

Fondamentalement un entier (int) c'est fait pour contenir une valeur entière, donc quand tu passes ASCII à cout il tente de te l'afficher comme... Un entier. Il ne peut pas deviner que tu tentes d'y mettre un char et que c'est comme ça que tu voudrais l'afficher.

 

Sachant en plus de ça qu'un int occupe 8 (ou 4) octets, pourquoi passer par un int ?
Tu peux faire tes opérations mathématiques d'un char à un autre.

 

edit : par rapport au post de gilou, c'est une très bonne idée de vérifier que la transposition "minuscule->majuscule" est possible avant d'y appliquer le -32 mais ça n'est pas le but premier de l'exo j'imagine. Et je ne sais pas si static_cast<T> est la réponse attendue.


Message édité par TotalRecall le 27-10-2019 à 09:30:52

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Transformer une minuscule en majuscule

 

Sujets relatifs
selectionner une suite de chiffres dans une routine de tri C++Exercice de tableau basique en C URGENT !
C# - comment faire un algorithme de calcul de parité d'un octet[C] Erreurs dans les fonctions
Connecteur C / MariaDBtransformer une list en TVectorT
Header C dans prog cppC++ calcul d'un nombre prmier
[C#] Charger un combobox plus rapidementRécupération adresse IP de ma Passerelle en C
Plus de sujets relatifs à : [C++] Transformer une minuscule en majuscule


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR