Я учусь std::string
, и я хочу:Простая программа с станд :: строка не работает
- Входная строка
- Каждая вторая буква сделать Верхний регистр
Выход новой строки
#include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { string myStr; getline(cin,myStr); if (myStr.begin() != myStr.end()) { for (auto it = myStr.begin(); it != myStr.end() ; it += 2) *it = toupper(*it); } cout << myStr; system("pause"); return 0; }
Но после ввода я получаю ошибку here:
Начните с нажатия «Повторить», чтобы запустить отладчик и посмотреть, где в вашем коде произошел сбой. –
Не проблема, но тест 'if (myStr.begin()! = MyStr.end())' ничего не выполняет, так как условие цикла в любом случае устранит этот случай. –
@PeteBecker Это преждевременная оптимизация, если строка пуста. И поскольку все преждевременные оптимизации практически бесполезны и не нужны. –