2010-03-10 20 views

Respuesta

17

<string> es donde se define std::string.

es un encabezado de Microsoft C++ que contiene la implementación real de la plantilla std::basic_string. Nunca necesita incluir usted mismo. <string> lo incluye para la implementación basic_string.

<cstring> es la biblioteca estándar de cadena de C (strcpy, strcat, etc) que se coloca en el espacio de nombres de C++ std.

wstring no es un archivo de cabecera que yo sepa. std::wstring es la versión wchar_t de std::string y se define cuando se incluye <string>.

+0

@DavidRR, ¿Por qué editó una pregunta de 5 años y las dos respuestas solo para formatear el código de texto como "código"? ¿Por qué pusiste palabras en mi boca al hacer la edición: "wstring no es un archivo de cabecera del que estoy enterado"? ¿Escribí eso? Eso es lo que dice. – jmucchiello

+0

StackOverflow es una base de conocimiento. Nosotros, sus usuarios, somos alentados a editar preguntas y respuestas para mejorar aún más su utilidad a lo largo del tiempo. Todas las ediciones deben agregar valor. Resulta que soy uno de los muchos que creen que resaltar los elementos del lenguaje que aparecen en el texto mejora la legibilidad. Dichas ediciones son [consideradas aceptables] (http://meta.stackoverflow.com/a/271922/1497596) y por muchos [animadas] (http://meta.stackoverflow.com/a/278091/1497596). Sin embargo, la edición incorrecta, incluido el formato mal aplicado, se considera [vandalismo] (http://meta.stackoverflow.com/a/256335/1497596). – DavidRR

+0

... Dicho esto, estoy muy de acuerdo en que me sobrepasé cuando agregué las dos últimas oraciones. En cambio, debería haber publicado ese texto como un comentario, o posiblemente he incorporado ese texto en mi propia respuesta. Finalmente, usted, como propietario de la respuesta, tiene todo el derecho a editar su respuesta o incluso a retrotraerla a su estado original. Dejaré esa decisión en tus manos. – DavidRR

16

Solo <cstring> y <string> son encabezados estándar. es un encabezado no estándar.

#include <cstring> 

Ésta es <string.h>, pero con las declaraciones de espacio de nombres puestos en std. Es la "versión C++" del encabezado C.

#include <string> 

Aquí es donde se define std::string. No tiene nada que ver con el encabezado C.

+1

Incluso más rápido que yo copiando partes de las páginas man. – pmr

+0

['std :: wstring'] (http://www.cplusplus.com/reference/string/wstring/) también se define cuando se incluye' '. – DavidRR