Member 13616463 Ответов: 1

Функция c++ substr() не работает должным образом.


#include <iostream>
#include<string> 

using namespace std;

int main()
{

string s = "abaxyzzyxf" ; 

cout<< s.substr(5,6) ; 

    

    return 0;
}


Приведенный выше код печатает zzyxf, а не zz.

Что я уже пробовал:

Я писал код, чтобы найти самую длинную подстроку палиндрома в данной строке s, и во время отладки я узнал, что моя функция substr() работает неправильно.

Он печатает zzyxf, а не zz.

Почему это происходит ?

Richard MacCutchan

- Почему это происходит ?"
Потому что вы не проверили документацию.

CPallini

:-) Виртуальный 5.

1 Ответов

Рейтинг:
12

phil.o

string substr (size_t pos = 0, size_t len = npos) const;

Второй параметр относится к длине подстроки, а не к индексу конца захвата.
std::string::substr[^]
Итак, да, функция работает правильно; вы просто неправильно использовали ее параметры :)


CPallini

5.

phil.o

Спасибо Карло :)