Как работать со строками в C++?
Всем привет! Начал изучать C++ и столкнулся с проблемой при работе со строками. Пытаюсь написать простую программу, которая считывает имя пользователя, а затем выводит приветствие с этим именем, преобразованным в верхний регистр. Но код работает не так, как я ожидаю.
Вот что я пробовал:
#include <iostream>
#include <string>
#include <cctype>
int main() {
std::string name;
std::cout << "Введите имя: ";
std::cin >> name;
for (char c : name) {
c = std::toupper(c);
}
std::cout << "Привет, " << name << "!" << std::endl;
return 0;
}Проблема в том, что имя выводится в исходном регистре, хотя я ожидаю, что оно будет в верхнем регистре. Похоже, что цикл for each не изменяет исходную строку. Я также пробовал использовать std::getline вместо std::cin >>, но это не помогло.
Ожидаемый результат: если ввожу "john", то должно выводиться "Привет, JOHN!". Что я делаю не так? Как правильно преобразовать строку в верхний регистр? И вообще, какие есть лучшие практики для работы со строками в C++? Заранее спасибо за помощь!
Ответов пока нет.
Войдите чтобы оставить ответ
Блоги