Показать сообщение отдельно
A_D
MONOGROME
Аватар для A_D
Сообщения: 10,991
Регистрация: 11.02.2009
Откуда: Бразилия
Старый пост, нажмите что бы добавить к себе блог 21 октября 2014, 11:11
  #3168 (ПС)
пацаны, как тут последний цикл переделать под итератор?
Показать скрытый текст
#include "stdafx.h"
#include "iostream"
#include "string"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int n = 5;//сколько слов

string a[5] = {"salksk", "fqwq", "pkloe", "slfs", "loklahjd"};//исходный массив слов
string s1 = "lk", s2 = "s";//2 подстроки

//удаление послед вхождения второй подстроки
for (int i = 0; i < n; i++)
{
if (!a[i].find(s2))//есть ли в строке подстрока
a[i].erase(a[i].rfind(s2), s2.size());//rfind(s2) - поиск послед вхождения//erase - удаление подстроки по ее позиции и длине
}

string b = "", c = "", s3_n = s1;//b и c - выход, s3_n - для перевернутой первой подстроки
reverse(s3_n.begin(), s3_n.end());//переворот подстроки
//состав двух предложений
for (int i = 0; i < n; i++)
{
if (a[i].size() % 2 == 0)//четное
{
if (a[i].find(s3_n)) b += a[i] + " ";//+есть перевернутая подстрока
}
else //нечетное
{
if (a[i].find(s1)) c += a[i] + " ";//+есть не перевернутая подстрока
}
}
cout << b << "\n" << c<<"\n";

system("PAUSE");

return 0;
}


если кто код не может понять вот задание..
Показать скрытый текст
Дан массив слов и две подстроки. Удалить из всех слов массива последнее вхождение второй подстроки. Сформировать два предложения из полученных слов массива. В первое предложение должны войти слова, длина которых четная, и которые имеют в своем составе перевернутую первую подстроку. Во второе предложение должны
войти слова, длина которых нечетная, и которые имеют в своем составе первую подстроку

offline
Ответить с цитированием