Как прописать слово в строке C++?


У меня есть строка std::и я хочу, чтобы первая буква была заглавной, а остальные строчными буквами.

Один из способов, которым я мог бы это сделать:

const std::string example("eXamPLe");
std::string capitalized = boost::to_lower_copy(example);

capitalized[0] = toupper(capitalized[0]);

, что даст capitalized в виде:

"Пример"

Но, возможно, есть более прямой способ сделать это?
1 2

1 ответ:

Если строка действительно является всего лишь одним словом, std::string capitalized = boost::locale::to_title (example) должен сделать это. В противном случае, то, что у вас есть, довольно компактно.

Edit: только что заметил, что пространство имен boost::python имеет класс str с методом capitalize(), который звучит так, как будто он будет работать для строк с несколькими словами (предполагая, что вы хотите то, что вы описали, а не регистр заголовка). Однако использование строки python только для получения этой функциональности, вероятно, плохая идея.