Сегодняшняя серия ошибок: функция substr перехватывает абзац в строке

Поделитесь опытом сегодняшнего перехвата строк.

Поделитесь одним, перехватив определенную подстроку строки до конца

Пример похож на заголовок:
перехватить все строки после строки «I» в строке: «aaa bbb ccc, я люблю CSDN!».
[Хотя в строке в примере есть только один символ "I", истина остается той же]

#include <iostream>
using namespace std;

int main()
{
    
    
	string str = "aaa bbb ccc , I love CSDN !";
	int pos = str.find("I"); // 在字符串str中找到字符串 "I" 出现的位置
	string str2 = str.substr(pos); // 在字符串str中,从"I" 出现的位置开始截取至结束
	cout <<"截取后的字符串为:" << str2.c_str() << endl;
}

Вывод:

截取后的字符串为:I love CSDN !

Итог: str.substr (pos); представляет строку от позиции pos до последнего бита строки

Поделитесь двумя, перехватите определенный сегмент строковой переменной

Примером может служить заголовок:
В строке: «aaa bbb ccc, я люблю CSDN!» 13 символов перехватываются с 14 позиции.

#include <iostream>
using namespace std;

int main()
{
    
    

	string str = "aaa bbb ccc , I love CSDN !";
	string str2 = str.substr(14,13); // 14表示要截取的字符串的开始的位置,13代表要截取的字符串的长度。
	cout << "截取后的字符串为:" << str2.c_str() << endl;
}

Вывод:

截取后的字符串为:I love CSDN !

Сводка: str.substr (pos, n); pos представляет начальную позицию строки, которая должна быть перехвачена, а n представляет длину строки, которая должна быть перехвачена.

Поделись тройкой, добавь c_str ()

Предполагается, что внимательные ученики обнаружили, что при выводе строки она выводится следующим образом

str2.c_str()

Почему в конец добавлен .c_str?
Потому что, если вы не добавите его, он сообщит об ошибке, подобной этой

错误	C2679	二进制“<<: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)

Причина: строковый тип не имеет символа перегрузки <<.

Поэтому при выводе строки ее можно решить, вызвав метод c_str ().

Поделись четырьмя, добавь найти ()

Str.find ("I"); используется в общей папке выше;

Возвращает позицию первого вхождения строки "I".

Конец:

Совместное использование - это также способ снова углубить ваше понимание проблемы. Возможно, он не будет исчерпывающим, но определенно полезен и будет улучшаться позже ~

рекомендация

отblog.csdn.net/hwx802746/article/details/112170506