Каков наилучший способ включить стандартный заголовок string.h в проект на С++?
Используя [dot] h в конце, вот так:
#include <string.h>
или просто писать
#include <string>
Или, может быть, используя другой способ, который я не знаю?
Спасибо!
Каков наилучший способ включить стандартный заголовок string.h в проект на С++?
Используя [dot] h в конце, вот так:
#include <string.h>
или просто писать
#include <string>
Или, может быть, используя другой способ, который я не знаю?
Спасибо!
Это два разных заголовка.
<string> для С++ std::string class<string.h> для c строковых функций (например, strlen() и т.д.), который должен быть <cstring> для проекта С++ (это третий, о котором вы не знали).его совсем другое!
<string.h> эта библиотека для строк стиля C
<string> для строк С++
по стандарту на С++ вы должны использовать <cstring> вместо <string.h>
Wiki говорит:
Стандартная библиотека С++ также включает 18 заголовков ISO C90 C стандартная библиотека, заканчивающаяся на ".h", но их использование устарело. Все другие заголовки в стандартной библиотеке С++ DO NOT заканчиваются на .h ".
Каждый заголовок из стандартной библиотеки C включен в С++ Стандартная библиотека под другим именем, созданная путем удаления .h, и добавление" c "в начале; например," time.h "становится" ctime".
string - С++ stl headfile предоставить строку класса шаблона string.h - стандартный файл headfile предоставляют много функций для использования. как strlen strcpy memcpy. если вы хотите использовать в пространстве имен std, который не использует пространство имен глобуса или не хочет использовать string.h вы можете использовать cstring вместо.
Файлы заголовков *.h часто являются заголовочными файлами C, которые вы можете использовать в С++, возможно, с extern "C" { ... } wrapping
Заголовки без *.h обычно являются подлинными заголовками С++.
Это правило только.
Последние и предыдущие стандарты С++ (С++ 11, С++ 03) определяют заголовки типа <cstdio> для правильной упаковки исходных заголовков C, с использованием пространств имен и т.д.
Стандарт
#include <string>