Как скопировать строку без последнего символа
Есть строка: std::string S = "a/b/c/d/"
И есть функция: func(std::string G)
Вопрос: как передать S в func на место Gбез последнего символа, например /
Ответы (2 шт):
Автор решения: Dmitry Safonov
→ Ссылка
Ну у класса string из стандартной библиотеки есть метод erase, который удаляет символы с заданной позиции и до конца. Есть и другие полезные методы. Почитай документацию. Вот пример:
#include <iostream>
#include <string>
void foo(std::string G);
int main()
{
std::string str = "a/b/c/d/";
foo(str.erase(7));
return 0;
}
void foo(std::string G) {
std::cout << G << std::endl;
}
Автор решения: Harry
→ Ссылка
Использовать erase - не самая удачная идея, потому что при этом вы меняете саму исходную строку, что вряд ли входит в ваши планы...
Я бы использовал substr -
foo(s.substr(0,s.length()-1);