Slais S Slais Регистрация 16 Сен 2013 Сообщения 99 Репутация 0 Спасибо 0 Монет 0 26 Фев 2025 #1 программа должна считывать строку с конца к началу, пока не наткнётся на '-' или '+'.почему не работает? #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; int main() { string S; string timeS; cin >> S; string::iterator It=S.end(); while (*It != '-' || *It != '+' { It--; timeS += *It; } cout << timeS; return 0; }
программа должна считывать строку с конца к началу, пока не наткнётся на '-' или '+'.почему не работает? #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> using namespace std; int main() { string S; string timeS; cin >> S; string::iterator It=S.end(); while (*It != '-' || *It != '+' { It--; timeS += *It; } cout << timeS; return 0; }
bibizushka B bibizushka Регистрация 7 Июл 2013 Сообщения 85 Репутация 1 Спасибо 0 Монет 0 26 Фев 2025 #2 Твоя ошибка в том, что S.end() дает тебе не последний элемент в строке, а следующий за ним. Разыменовывать такой итератор нельзя. Используй вместо end() rbegin()
Твоя ошибка в том, что S.end() дает тебе не последний элемент в строке, а следующий за ним. Разыменовывать такой итератор нельзя. Используй вместо end() rbegin()
kolibr K kolibr Регистрация 30 Ноя 2013 Сообщения 80 Репутация 0 Спасибо 0 Монет 0 26 Фев 2025 #3 Наугад писал? Зачёт. Хотя бы ноль догадался возвратить.
strateg1 S strateg1 Регистрация 6 Окт 2013 Сообщения 97 Репутация 0 Спасибо 0 Монет 0 26 Фев 2025 #4 #include <iostream> #include <string> using namespace std; int main() { cout << ">>> "; string line; getline(cin, line); const auto pos = line.find_last_of("-+" cout << "<<< "; if (pos != string::npos) { for (auto i = line.crbegin(); *i != line[pos]; ++i) { cout.put(*i); } } else { puts("Not found!" } }
#include <iostream> #include <string> using namespace std; int main() { cout << ">>> "; string line; getline(cin, line); const auto pos = line.find_last_of("-+" cout << "<<< "; if (pos != string::npos) { for (auto i = line.crbegin(); *i != line[pos]; ++i) { cout.put(*i); } } else { puts("Not found!" } }
Данилка Д Данилка Регистрация 28 Июл 2013 Сообщения 70 Репутация 2 Спасибо 0 Монет 0 26 Фев 2025 #5 *It != '-' && *It != '+'