Notas de estudio de C++ artículos de cadena

1. Cadena de conexión +

string str1 = "hello";
string str2 = "world";
string str = str1 + str2;// "helloworld"

2. Buscar encontrar()

  1. Si se encuentra una coincidencia, devuelve el subíndice
  2. No se encontraron coincidencias, volverstring::npos

Por ejemplo:

string str = "how are you";
int pos = str.find("are"); // 返回 4
	pos = str.find("was"); // 返回 string::npos
if (pos!=string::npos)
	printf("Found, pos = %d\n", pos);
else 
	printf("Not found!\n");

3. Eliminar el elemento especificado erase() + remove()

No puede eliminar un elemento de una secuencia sin conocer el escenario específico, es decir, en qué contenedor está almacenado el elemento. Entonces, los algoritmos de "eliminación de elementos" tampoco pueden hacer eso, simplemente reescriben los elementos seleccionados o ignoran los elementos copiados. La operación de eliminación no cambia el número de elementos en la secuencia del elemento "eliminado". ¡Entonces también necesitamos usar erase()para cambiar la cantidad de elementos de secuencia para lograr el propósito de eliminación!

// 删除str中的 'a' 元素
// 需要 #include <algorithm>
// 写法1
	str.erase(std::remove(str.begin(), str.end(), 'a'), str.end());
// 写法2
	string::iterator it = std::remove(str.begin(), str.end(), 'a');
	str.erase(it, str.end());
  1. El primer paso remove(string::iterator begin, string::iterator end, char ch);
    devuelve un iterador. Si se eliminan n a, se devuelve el iterador en la última posición n.
  2. El segundo paso str.erase(string::iterator begin, string::iterator end);es eliminar los caracteres innecesarios al final para eliminar realmente el elemento especificado.

4. Contenido de salida

// 方法1
for (unsigned int i=0; i<str.size(); ++i)
{
    
    
	printf("%c", str[i]);
}
// 方法2
for (string::iterator it = str.begin(); it!=str.end(); ++it)
{
    
    
	printf("%c", *it);
}

5. Algunos puntos a tener en cuenta begin() end() size() empty()

bool empty() const noexcept
{
    
    	// test if sequence is empty
		return (size() == 0);
}
string str = "12345";
str.begin();	 // 0
str.end();		 // 6 最后一个有效位+1
str.size();		 // 6 最后一个有效位+1

Supongo que te gusta

Origin blog.csdn.net/weixin_45827203/article/details/129651475
Recomendado
Clasificación