Resumo do uso da string
No processo de escovar as questões, o autor descobriu que algumas gramáticas são fáceis de esquecer, então esta série de notas para escovar as questões quer registrar algumas gramáticas comuns para fácil revisão e consolidação. O conteúdo desta série é atualizado de forma síncrona de acordo com o andamento das questões.
1. Corda
1. Arquivo de cabeçalho
#include <string>
2. Criação e inicialização de string
string str;//定义字符串变量
string str1 = "hello";//定义字符串变量同时赋初值
str = str1;//把str1复制给str
string str2(3, 'a');//创建一个包含n个元素的字符串,每个元素初始化为指定元素,输出结果为“aaa”
string str3("value");//定义字符串变量同时赋初值
string str4(str3);//把str3赋值给str4
3. Operações de leitura e gravação de strings
(1) Use cin para ler o valor inserido pelo teclado
O objeto string irá ignorar automaticamente os espaços em branco no início (ambos os espaços, novas linhas, tabulações, etc.)
string str;//定义字符串变量
cin >> str; //使用cin对字符串进行赋值
cout << str << endl;//使用cout输出字符串
(2) Use getline() para ler a linha
O formato da função de getline: getline(cin, string object)
A função de getline é ler uma linha inteira e parar de ler até encontrar um caractere de nova linha, durante o qual ele pode ler caracteres em branco, como espaços e tabulações.
string str1;
getline(cin, str1);//读取一行为str1赋值
cout << str1 << endl;
Observação: a função getline, como cin, também retornará seu parâmetro de fluxo, que é cin, portanto, você pode usar getline para ler uma linha em um loop.
string str1;
while(getline(cin, str1))//循环读取一行为str1赋值
cout << str1 << endl;
4. Operação de concatenação de strings
Concatena a string str2 ao final da string str1. C++ é compatível com a função strcat() da linguagem 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后面
Ao adicionar objetos de string e caracteres ou literais de string, você deve garantir que os operandos em ambos os lados do sinal + tenham pelo menos uma string.
string str3 = str1 + ','+ str2+ '\n';//string对象与字符相加
5. Operações de comparação de strings
As strings podem ser comparadas usando operadores de comparação, compare() ou a função strcmp(s1, s2) na linguagem C. Strings não são iguais enquanto houver um caractere desigual ou mais um caractere em uma determinada string.
(1) Operadores de comparação (>, <, ==)
if(str1 > str2)
cout << str1 << "大于" << endl;
else if(str1 < str2)
cout << str1 << "小于" << endl;
else
cout << str1 << "等于" << endl;
(2) compare()
A função de membro compare() no objeto string pode comparar strings.
Se str=a string especificada, str.compare() retorna 0
Se str> a string especificada, str.compare() retorna um número positivo
Se str<string especificada, str.compare() retorna um número negativo
int ret = str1.compare(str2);//比较str1和str2
(3) strcmp(str1,str2)
A função strcmp(str1, str2) compara duas strings de acordo com o valor do código ASCII; a função strcmp(str1, str2) primeiro subtrai o valor do primeiro caractere da string str1 do primeiro caractere de str2, se a diferença for for zero, continue a comparação; se a diferença não for zero, retorne a diferença.
Se str1 e sttr2 forem iguais, retorna 0;
se str1<str2, retorna valor menor que 0
; se str1>str2, retorna valor maior que 0
int ret = strcmp(str1, str2);
6. Obtenha o comprimento da string
Para objetos string, str.length() e str.size() são sinônimos e retornam o comprimento dos caracteres na string, excluindo '/0'.
Além disso, a função size() também pode obter o comprimento do tipo de vetor.
int len1 = str.size();//获取字符串的长度
int len2 = str.length();//获取字符串的长度
7. Obtenha a substring
string s = str.substr(n,m);//从str的第n个字符开始取m个字符
8. Obtenha um caractere em uma string
char ch1 = str[n];//获取字符串str中的第n个字符
char ch2 = str.at(n);//获取字符串str中的第n个字符