Вопрос № 164032: Здравствуйте, уважаемые эксперты. Помогите, пожалуйста, с решение задачи на С++. В тексте из 30 строк до 66 знаков подсчитать количество строк начинающихся с одного или нескольких пробелов за которыми следует знак “—”(дефис) . Заранее спасибо !...
Вопрос № 164.032
Здравствуйте, уважаемые эксперты. Помогите, пожалуйста, с решение задачи на С++. В тексте из 30 строк до 66 знаков подсчитать количество строк начинающихся с одного или нескольких пробелов за которыми следует знак “—”(дефис) . Заранее спасибо !
// Функция проверки соответствия строки условию bool isCondition(const wstring& str) { wstring::const_iterator
it=str.begin(); // Пропускаем пробелы если есть while(it!=str.end()&&*it==' ')++it; // Если пробелов нет или закончилась строка if(it==str.begin()||it==str.end())return false; // Если следующий символ дефис if(*it==L'-')return true; else return false; }
int main() { locale::global(locale("russian_russia.866")); wcout<<L"Вводите строки текста(пустая строка для завершения):"<<
endl; vector<wstring> strVec; wcin.unsetf(ios::skipws); // Вводим строки while(true) { wstring str; getline(wcin,str); // Если пустая - завершаем цикл if(str.empty())break; // Если удовлетворяет условию сохраним ее if(isCondition(str))strVec.push_back(str); } // Выводим результат if(strVec.size()) { wcout<<L"Найдено строк удовлетворяющих условию:"<<strVec.size()<<endl <<L"Это строки:"<<endl; for(vector<wstring>::const_iterator
it=strVec.begin();it!=strVec.end();++it) wcout<<*it<<endl; } else wcout<<L"Таких строк не найдено"<<endl; system("PAUSE"); return 0; }
Пример работы:
Код:
Вводите строки текста(пустая строка для завершения): Эта строка не удовлетворяет условию -Эта тоже И эта- -а эта удовлетворяет - -эта и педыдущая тоже следующая будет пустой и цикл завершится
Найдено строк удовлетворяющих условию:3 Это строки: -а эта удовлетворяет - -эта и педыдущая тоже
Программа написана на C++ с применением
классов STL.
Ответ отправил: Micren (статус: Практикант)
Ответ отправлен: 03.04.2009, 23:46
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 246764 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.