Дополнение К Библиотеке Stl

  • Автор темы Fallen
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

Fallen

#1
Программа должна реализовать функции split, merge, shift, unshift для класса string. Написать код, тестирующий эти функции.

* Split. Разделяем строку на подстроки по признаку, сохраняем в вектор строк.
Например: на входе "мама мыла раму", разделяем по пробелу - на выходе "мама","мыла","раму".
Объявление функции в виде:
vector<string> split(string in, string delimeters);
in - строка на входе.
delimeters - признак разделения.

*merge - делает обратное действие. На входе вектор строк - на выходе 1 строка, склеиваем по признаку.
Объявление:
string merge(vector<string> in, string glue);

*Shift. Сделать шаблонную функцию для контейнера вправо.
Например: на входе "1 2 3 4 5", надо сдвинуть на 2 символа, на выходе "4 5 1 2 3";
Объявление:
string shift(string in, int shift) //Объявление записал для строк - надо сделать для любого типа.

*Unshift - обратное действие, т.е. сдвигаем влево.
/////////////////////////////
у string оператор + уже перегружен так как нам надо
Склеивание строк:
string merge (string str1, string str2, string str3) {
return str1 + " " + str2 + " " + str3;
}
И ненадо что-то там мудрить...

Если у нас вектор "слов" то. берем длину вектора в цикле поэлементно складываем по тому же принципу.
string merge (vector<string> str) {
string rez;
for (int i = 0; i < str.length() - 1; i++) {
rez += str + " ";
}
rez += str[str.length() - 1]; // это чоб в конце пробел не добавлялся
return rez;
}
Ну как-то так-то...

помогите наклепать код полностью...
 
Статус
Закрыто для дальнейших ответов.