Другие языки программирования и технологии
C++ полифил функции substr
Нужен полифил функции substr в языке c++
В C++ Это не функция, а метод класса std::basic_staring, который реализован в заголовочном файле <string> который принимает в качестве первого аргумента индекс начала подстроки, а в качестве второго – количество символов. Оба аргумента имеют целый неотрицательный тип и является необязательными. Если не передавать аргументов вообще, то метод возвращает копию строки. Если передать только один аргумент, то метод вернёт подстроку начиная с указанного индекса и до конца строки. Если значение индекса будет равно или больше длины строки, метод вернёт пустую строку. Если значение второго аргумента превысит количество символов оставшихся в строке, метод вернёт подстроку от указанного первого индекса и до конца строки.
std::basic_staring – шаблон контейнера на тип char
В классе std::basic_staring реализован конструктор, который принимает на вход два итератора, первый из которых указывает на начальный символ источника, второй указывает на положение сразу за последним элементом в диапазоне источника.
В качестве источника выступает строка или контейнер типа char. Итераторы на строку получают функциями begin и end, итераторы на контейнер данного типа имеют одноименные встроенные методы.
Код метода substr может выглядеть, например, так:
basic_string substr(size_type pos = 0, size_type count = npos) {
if (!pos && count == npos ) return basic_string(*this);
if (pos >= this->length()) return basic_string();
auto first = this->begin() + pos;
auto last = first + count + 1;
if (last > this->end()) last = this->end();
return basic_string(first, last);
}
где size_type – определённый в классе basic_string тип целого числа без знака, который может представлять число элементов и индексов в строке.
std::basic_staring – шаблон контейнера на тип char
В классе std::basic_staring реализован конструктор, который принимает на вход два итератора, первый из которых указывает на начальный символ источника, второй указывает на положение сразу за последним элементом в диапазоне источника.
В качестве источника выступает строка или контейнер типа char. Итераторы на строку получают функциями begin и end, итераторы на контейнер данного типа имеют одноименные встроенные методы.
Код метода substr может выглядеть, например, так:
basic_string substr(size_type pos = 0, size_type count = npos) {
if (!pos && count == npos ) return basic_string(*this);
if (pos >= this->length()) return basic_string();
auto first = this->begin() + pos;
auto last = first + count + 1;
if (last > this->end()) last = this->end();
return basic_string(first, last);
}
где size_type – определённый в классе basic_string тип целого числа без знака, который может представлять число элементов и индексов в строке.
ась
Похожие вопросы
- Вопрос для тех кто знает точный ответ, язык C про функции все подробности вопроса внутри...
- Почему в C++ заголовки функций и код принято хранить в отдельных файлах?
- C++. Шаблоны функций
- Функции в языке программирования C.
- C++ Указатели и функции.
- Как передать функцию в качестве параметра другой функции на C++?
- C++ Везде написано, что sizeof() с массивом в качестве аргумента возвращает полный размер. А в данной функции не так.
- Функция калькулятора на C++
- Задача по C++ Не могу придумать как одновременно записывать в массив и считать функцию.
- Как написать функцию 1+4=5 в C\с++