0
votes

Comment puis-je boucler à travers une chaîne et convertir en minuscule?

Je sais qu'il y avait quelques autres questions à ce sujet depuis un moment de retour, mais j'ai regardé ces yeux et je ne pouvais toujours pas le comprendre. J'essaie de prendre une entrée de l'utilisateur sous la forme d'une chaîne, puis de la boucle à travers cette chaîne convertir toutes les majuscules en minuscule afin que je puisse l'afficher tout en minuscule. Où est-ce que je vais mal? XXX

Je suis très nouveau à C ++ et je voudrais mentir si je disais que j'avais une grande partie d'une idée même où je me trompe. La ligne 11, où la boucle pour est dit qu'il tente de comparer deux signes différents, mais je ne sais pas ce que cela signifie ou si c'est la source de mon problème. Ligne 15 où le tolower () est dit qu'il "ignorer la valeur de retour de la fonction déclarée avec un attribut pur" mais je ne sais toujours pas ce que cela signifie non plus. S'il vous plaît aider.


0 commentaires

3 Réponses :


0
votes

Je vous recommande de regarder les tables ASCII pour voir les codes pour les majuscules et les minuscules. http://www.asciditable.com/ xxx

c'est tout Il suffit de travailler avec les valeurs ASCII pour obtenir ce que vous voulez, car tous les personnages sont essentiellement des entiers.


0 commentaires

6
votes

quelques points :

  • tolower renvoie le caractère minuscule s'il existe ( 'a' devient 'A' , 'a' est inchangé, '9' est inchangé, etc.)
  • la ligne texte [i] = texte [i]; ne fait rien, vous voulez texte [i] = tolower (texte [i]);
  • Il n'est pas nécessaire de vérifier si chaque caractère est minuscule, tolower va gérer cela pour vous

    simplifié : xxx


0 commentaires

1
votes

Je suggère d'utiliser la fonction d'algorithme de la bibliothèque std transformer pour simplifier et rendre le code plus facile à lire pour vous et d'autres. XXX

Edit:

Comme Remy a souligné la bonne voie d'implant, c'est en utilisant un proxy lambda depuis

Le comportement de std :: tolower n'est indéfini si la valeur de l'argument est ni représentables comme non signé de caractère ni égal à eof. xxx


2 commentaires

Ce n'est pas le correct moyen d'utiliser tolower () comme prédicat pour std :: transformer () . Voir Cette documentation pour une explication et un exemple du correct façon.


De plus, cela devrait également être appliqué à l'ASAT.