[STL] cadena de inicialización contenedor, costura, asignaciones, buscar, reemplazar, comparar, en cadenas, la inserción y eliminación

A las propiedades de cadena,

cadena STL es un tipo de cadena, normalmente se utiliza para representar una cadena. Antes de utilizar la cadena, la cadena con el carbón es generalmente indicado, secuencia y Char se pueden utilizar para representar una cadena.
Hablando de las propiedades de cadena, y tendría Char Tipo de comparación de cadenas:
. 1, char
es un puntero, es una clase string
cadena encapsula * char, gestión de la cadena, es un char contenedor de texto.
2, cadena encapsula un montón de método miembro de práctica
para encontrar hallazgo, copiar copiar, borrar borrar, sustituir a reemplazar, insertar INSERT
3, independientemente de la liberación de memoria y transfronteriza
carbón cadena de gestionar
la memoria asignada, cada cadena de copia, por valor clase string se encarga de, no se preocupe por el valor de la cooperación transfronteriza y la copia transfronteriza y así sucesivamente.
. 4, secuencia y Char son intercambiables, cadena Char su vez proporcionada por una cadena del método c_str ().

//string转char*
string str=“abcdefg”;
const char* cstr=str.c_str();
//char*转string
char* s=“abcdefg”;
string sstr(s);

Dos, cadena de inicialización de contenedores, cosiendo, asignaciones, buscar, reemplazar, comparar, en cadenas, la inserción y eliminación

#include<iostream>
#include<string>
using namespace std;

/////////////////////// 1- inicialización
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

void test01() {
	string s1;//调用无参构造
	string s2(10, 'a');
	string s3("abcdefg");
	string s4(s3);//拷贝构造

	cout << s1 << endl;
	cout << s2 << endl;
	cout << s3 << endl;
	cout << s4 << endl;

}

2- asignación //////////////////////
Aquí Insertar imagen Descripción

void test02() {
	string s1;
	string s2("appp");
	s1 = "abcdefg";
	cout << s1 << endl;
	s1 = s2;
	cout << s1 << endl;
	s1 = 'a';
	cout << s1 << endl;

	//成员方法 assign 进行赋值
	s1.assign("jkl");
	cout << s1 << endl;
}

3- ////////////////////// operación valor

void test03() {

	string s1 = "abcdefg";

	//重载[]操作符
	for (int i = 0; i < s1.size(); ++i) {
		cout << s1[i] << " ";
	}
	cout << endl;
	//at成员函数
	for (int i = 0; i < s1.size(); ++i) {
		cout << s1.at(i) << " ";
	}
	cout << endl;

	//区别:[]方式 如果访问越界,直接挂掉
	//		at方式 访问越界,抛出异常out_of_range;

	try {
		cout << s1.at(100) << endl;
	}
	catch(...){
		cout << "越界" << endl;
	}
}

4- operación de empalme /////////////////////
Aquí Insertar imagen Descripción

void test04() {
	string s = "abcd";
	string s2 = "1111";
	s += "abcd";
	s += s2;
	cout << s << endl;//abcdabcd1111

	string s3 = "2222";
	s2.append(s3);//把s3加到s2后面
	cout << s2 << endl;// 11112222

	string s4 = s2 + s3;//把s3加到s2的后面
	cout << s4 << endl;//111122222222
}

//////////////////// 5- Buscar y reemplazar
Aquí Insertar imagen Descripción

void test05() {
	string s = "abcdefgsadasaafgddefgde";
	//查找第一次出现的位置
	int pos=s.find("fg");
	cout << "pos:"<<pos << endl;

	//查找最后一次出现的位置
	pos = s.rfind("fg");
	cout << "pos:" << pos << endl;
}

///////////////////// operación de sustitución

void test06() {
	string s = "abcdefg";
	s.replace(0, 2, "111");
	cout << s << endl;
}

6- comparación de cadenas ////////////////////
Aquí Insertar imagen Descripción

void test07() {
	string s1 = "abcd";
	string s2 = "abce";
	if (s1.compare(s2) == 0) {
		cout << "字符串相等" << endl;
	}
	cout << "不相等" << endl;
}

////////////////// operación de 7 cuerdas subcadena

void test08() {
	string s = "abcdefg";
	string sub=s.substr(1, 3);
	cout << sub << endl;
}

///////////////// inserción 8-string y supresión
Aquí Insertar imagen Descripción

void test09() {
	string s = "abcdefg";
	s.insert(3, "111");//abc111defg
	cout << s << endl;

	s.erase(0, 2);//c111defg
	cout << s << endl;
}

yo

nt main(void) {
	//test01();
	//test03();
	//test04();
	//test05();
	//test06();
	//test07();
	//test08();
	test09();
	return 0;
}
Publicado 57 artículos originales · ganado elogios 28 · vistas 4133

Supongo que te gusta

Origin blog.csdn.net/weixin_41747893/article/details/102831889
Recomendado
Clasificación