[C++] Resumen de uso de cadenas

En el proceso de cepillado de preguntas, el autor encontró que algunas gramáticas son fáciles de olvidar, por lo que esta serie de notas para cepillado de preguntas quiere registrar algunas gramáticas comunes para una fácil revisión y consolidación. El contenido de esta serie se actualiza sincrónicamente de acuerdo con el progreso de cepillado de las preguntas.

1. Cuerda

1. Archivo de encabezado

#include <string>

2. Creación e inicialización de cadenas

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

3. Operaciones de lectura y escritura de cadenas

(1) Use cin para leer el valor ingresado por el teclado

El objeto de cadena ignorará automáticamente los espacios en blanco al principio (tanto espacios, líneas nuevas, tabulaciones, etc.) y comenzará a leer desde el primer carácter real y terminará cuando encuentre "espacio", "TABULACIÓN" y "retorno de carro".

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

(2) Use getline() para leer la línea

El formato de la función de getline: getline(cin, objeto de cadena)
La función de getline es leer una línea completa y detener la lectura hasta que encuentre un carácter de nueva línea, durante el cual puede leer caracteres en blanco como espacios y tabulaciones.

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

Nota: la función getline, como cin, también devolverá su parámetro de flujo, que es cin, por lo que puede usar getline para leer una línea en un bucle.

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

4. Operación de concatenación de cadenas

Concatena la cadena str2 al final de la cadena str1. C++ es compatible con la función strcat() del lenguaje 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后面

Al agregar objetos de cadena y caracteres o literales de cadena, debe asegurarse de que los operandos a ambos lados del signo + tengan al menos una cadena.

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

5. Operaciones de comparación de cadenas

Las cadenas se pueden comparar utilizando operadores de comparación, compare() o la función strcmp(s1, s2) en lenguaje C. Las cadenas no son iguales mientras haya un carácter diferente o un carácter más en una determinada cadena.

(1) Operadores de comparación (>, <, ==)

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

(2) comparar()

La función miembro compare() en el objeto de cadena puede comparar cadenas.

Si str=la cadena especificada, str.compare() devuelve 0
Si str> la cadena especificada, str.compare() devuelve un número positivo
Si str<cadena especificada, str.compare() devuelve un número negativo

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

(3) strcmp(str1,str2)

La función strcmp(str1, str2) compara dos cadenas según el valor del código ASCII; la función strcmp(str1, str2) primero resta el valor del primer carácter de la cadena str1 del primer carácter de str2, si la diferencia Si es cero, continúa la comparación; si la diferencia no es cero, devuelve la diferencia.

Si str1 y sttr2 son iguales, devuelve 0;
si str1<str2, devuelve un valor inferior a 0
; si str1>str2, devuelve un valor superior a 0

int ret = strcmp(str1, str2);

6. Obtenga la longitud de la cadena

Para objetos de cadena, str.length() y str.size() son sinónimos y devuelven la longitud de los caracteres en la cadena, excluyendo '/0'.
Además, la función size() también puede obtener la longitud del tipo de vector.

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

7. Obtenga la subcadena

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

8. Obtener un carácter en una cadena

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

Supongo que te gusta

Origin blog.csdn.net/weixin_44842318/article/details/127062486
Recomendado
Clasificación