-2
votes

Lors de l'utilisation de TUPPER () sur une variable de caractères, ladite variable de caractères caractères multiples de plusieurs caractères. Comment puis-je empêcher cela?

L'intention du programme suivant consiste à enregistrer un seul caractère majuscule dans testvar . Cependant, lorsqu'il est exécuté, le caractère d'origine est sorti à côté du caractère correct. Qu'est-ce qui cause cela, et comment puis-je empêcher cette occurrence? XXX


6 commentaires

Vous demandez d'imprimer deux caractères et deux caractères sont imprimés.


Quelle est votre entrée et votre sortie?


Vous imprimez le premier caractère de la chaîne en hausse avec Stdio, puis imprimez le premier caractère comme lu avec iostreams. Mélanger comme ça fonctionne mais est un peu inhabituel à faire dans la même fonction.


Notez que TOUPPER ne change pas son argument. Vous avez besoin de TestVar = TUPPER (Usercustom [0]); pour obtenir le caractère majuscule.


Veuillez extraire et fournir un exemple de reproductible minimal , qui peut être compilé et qui ne contient rien qui n'est pas nécessaire pour démontrer votre question. En tant que nouvel utilisateur, prenez également le tour et lisez Comment demander . BTW: puchar () et COUT Ne mélangez pas trop bien. Restez avec C ++ Stream io de préférence.


Êtes-vous dans la même classe que Cette question Asker?


3 Réponses :


0
votes

puchar imprime un caractère et < Code> COUT Un autre à stdout .

Pour résoudre, vous pouvez essayer ceci: xxx


0 commentaires

0
votes

Ceci devrait être ce que vous voulez

int main() {
  string userCustom;
  char testVar;

  cout << "Would you like to test a custom square?" << endl;
  cout << "Enter \"yes\" or \"no\"" << endl;
  cin >> userCustom;
  testVar = toupper(userCustom.at(0));
  cout << testVar << endl;
}


0 commentaires

0
votes

Premier caractère (majuscule) est émis par la fonction de putchar, deuxième - par cout. Pour prévenir, commenter la putchar, soit Cout.


0 commentaires