Introducción a los archivos de encabezado <string> y los archivos de encabezado <cstring> en C++

Introducción a los archivos de encabezado <string> y los archivos de encabezado <cstring> en C++

En C++, <string> y <cstring> son dos archivos de encabezado diferentes.

<string> es un archivo de encabezado en la biblioteca estándar de C++. Define una clase llamada std::string, que proporciona operaciones en cadenas como tamaño(), longitud(), vacío() y concatenación de cadenas (empalme). , reemplazar, etc. Este archivo de encabezado contiene principalmente la clase std::string.

El siguiente código usa la clase de cadena en el archivo de encabezado <cadena> para crear un objeto de cadena y usa la función size() para obtener la longitud de la cadena:

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

int main() {  
    string str = "Hello, world!";  
    int len = str.size();  
    cout << "字符串的长度为: " << len << endl;  
    return 0;  
}

<cstring> Este archivo de encabezado es la versión C++ del archivo de encabezado <string.h> en lenguaje C. Proporciona principalmente algunas funciones y herramientas para operar cadenas de estilo C (es decir, matrices de caracteres terminadas en el carácter nulo '\0 '). Por ejemplo, strcpy, strlen, strcat, strcmp y otras funciones se declaran en este archivo de encabezado.

El siguiente código utiliza la función strcpy() en el archivo de encabezado <cstring> para copiar una cadena a otra:

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

int main() {  
    char str1[] = "Hello";  
    char str2[10];  
    strcpy(str2, str1);  
    cout << "复制的字符串是: " << str2 << endl;  
    return 0;  
}

Aunque ambos proporcionan operaciones de cadenas, su implementación y uso son diferentes. En la programación real de C++, se recomienda utilizar las clases de cadena en el archivo de encabezado <cadena> porque proporcionan funciones más seguras y fáciles de usar. Sin embargo, en algunos casos donde se requiere compatibilidad con bibliotecas C o se necesita optimizar el rendimiento, <cstring> puede ser más apropiado.

Supongo que te gusta

Origin blog.csdn.net/cnds123/article/details/132787410
Recomendado
Clasificación