[C++] Сводка по использованию строк

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

1. Строка

1. Заголовочный файл

#include <string>

2. Создание и инициализация строки

string str;//定义字符串变量
string str1 = "hello";//定义字符串变量同时赋初值
str = str1;//把str1复制给str
string str2(3, 'a');//创建一个包含n个元素的字符串,每个元素初始化为指定元素,输出结果为“aaa”
string str3("value");//定义字符串变量同时赋初值
string str4(str3);//把str3赋值给str4

3. Операции чтения и записи строк

(1) Используйте cin, чтобы прочитать значение, введенное с клавиатуры

Строковый объект будет автоматически игнорировать пробелы в начале (как пробелы, новые строки, табуляции и т. д.), так и начинать чтение с первого реального символа и заканчивать при встрече с «пробелом», «TAB» и «возвратом каретки».

string str;//定义字符串变量
cin >> str; //使用cin对字符串进行赋值
cout << str << endl;//使用cout输出字符串

(2) Используйте getline() для чтения строки

Формат функции getline: getline(cin, string object)
Функция getline заключается в чтении всей строки и прекращении чтения до тех пор, пока не встретится символ новой строки, во время которого он может читать пустые символы, такие как пробелы и табуляции.

string str1;
getline(cin, str1);//读取一行为str1赋值
cout << str1 << endl;

Примечание. Функция getline, как и cin, также возвращает параметр потока, который равен cin, поэтому вы можете использовать getline для чтения строки в цикле.

string str1;
while(getline(cin, str1))//循环读取一行为str1赋值
	cout << str1 << endl;

4. Операция конкатенации строк

Объединяет строку str2 с концом строки str1. C++ совместим с функцией strcat() языка C.

string str1 = "Hello";
string str2 = "world";
strcat(str1,str2);//C语言中使用strcat()对字符串进行拼接
str2=str1+str2;//C++中使用“+”号对字符串进行拼接
str2+=str1;相当于str2 = str2 + str1
str1.append(str2);//把str2加到str1后面

При добавлении строковых объектов и символьных или строковых литералов необходимо убедиться, что операнды по обе стороны от знака + имеют хотя бы одну строку.

string str3 = str1 + ','+ str2+ '\n';//string对象与字符相加

5. Операции сравнения строк

Строки можно сравнивать с помощью операторов сравнения, compare() или функции strcmp(s1, s2) на языке C. Строки не равны, пока в определенной строке есть неравный символ или еще один символ.

(1) Операторы сравнения (>, <, ==)

if(str1 > str2)
	cout << str1 << "大于" << endl;
else if(str1 < str2)
	cout << str1 << "小于" << endl;
else
	cout << str1 << "等于" << endl;

(2) сравнить()

Функция-член compare() в строковом объекте может сравнивать строки.

Если str=указанная строка, str.compare() возвращает 0
Если str> указанная строка, str.compare() возвращает положительное число
Если str<заданная строка, str.compare() возвращает отрицательное число

int ret = str1.compare(str2);//比较str1和str2

(3) стркмп(стр1,стр2)

Функция strcmp(str1, str2) сравнивает две строки по значению кода ASCII; функция strcmp(str1, str2) сначала вычитает значение первого символа строки str1 из первого символа строки str2, если разница равна нулю, продолжить сравнение, если разница не равна нулю, вернуть разницу.

Если str1 и sttr2 совпадают, вернуть 0;
если str1<str2, вернуть значение меньше 0
; если str1>str2, вернуть значение больше 0

int ret = strcmp(str1, str2);

6. Получить длину строки

Для строковых объектов str.length() и str.size() являются синонимами и возвращают длину символов в строке, исключая '/0'.
Кроме того, функция size() также может получить длину векторного типа.

int len1 = str.size();//获取字符串的长度
int len2 = str.length();//获取字符串的长度

7. Получить подстроку

string s = str.substr(n,m);//从str的第n个字符开始取m个字符

8. Получить символ в строке

char ch1 = str[n];//获取字符串str中的第n个字符
char ch2 = str.at(n);//获取字符串str中的第n个字符

Guess you like

Origin blog.csdn.net/weixin_44842318/article/details/127062486
C++