Avatar ·

Comment travailler avec les chaînes de caractères en C++ ?

Bonjour à tous ! J'ai commencé à étudier le C++ et j'ai rencontré un problème en travaillant avec les strings. J'essaie d'écrire un programme simple qui lit le nom d'un utilisateur, puis affiche un message de salutation avec ce nom converti en majuscules. Mais le code ne fonctionne pas comme je l'attends.

Voici ce que j'ai essayé :

#include <iostream>
#include <string>
#include <cctype>

int main() {
    std::string name;
    std::cout << "Entrez le nom : ";
    std::cin >> name;
    
    for (char c : name) {
        c = std::toupper(c);
    }
    
    std::cout << "Bonjour, " << name << "!" << std::endl;
    return 0;
}

Le problème est que le nom s'affiche dans sa casse d'origine, alors que je m'attends à ce qu'il soit en majuscules. Il semble que la boucle for each ne modifie pas la string d'origine. J'ai aussi essayé d'utiliser std::getline au lieu de std::cin >>, mais cela n'a pas aidé.

Résultat attendu : si je saisis "j