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

Тема в разделе "C/C++/C#", создана пользователем Fallen, 26 фев 2012.

Статус темы:
Закрыта.
  1. Fallen

    Fallen Гость

    Программа должна реализовать функции 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;
    }
    Ну как-то так-то...

    помогите наклепать код полностью...
     
Загрузка...
Похожие Темы - Дополнение Библиотеке Stl
  1. vvlad
    Ответов:
    4
    Просмотров:
    3.121
  2. Vadik(R)
    Ответов:
    0
    Просмотров:
    1.228
Статус темы:
Закрыта.

Поделиться этой страницей