標準のヘッダーstring.hをC++プロジェクトに含めるための最良の方法はどれですか?次のように、最後に[dot] hを使用します。
#include <string.h>
または単に書く
#include <string>
または、多分、私が知らない別の方法を使用していますか?
ありがとう!
これらは2つの異なるヘッダーです。
<string>
_はc ++用です_std::string
_クラス<string.h>
_はc文字列関数(strlen()
など)用であり、c ++プロジェクトの場合は_<cstring>
_である必要があります(これは3番目であり、あなたは知りませんでした)。そのかなり違う!
<string.h>
Cスタイルの文字列用のこのライブラリ
<string>
C++文字列の場合
c ++の標準では、<cstring>
の代わりに<string.h>
を使用する必要があります
Wiki 言います:
C++標準ライブラリには、「。h」で終わるISO C90 C標準ライブラリの18個のヘッダーも組み込まれていますが、それらの使用は非推奨です。 C++標準ライブラリ内の他のすべてのヘッダーDO NOTは「.h」で終わります。
C標準ライブラリの各ヘッダーは、.hを削除し、先頭に「c」を追加することによって生成された、異なる名前でC++標準ライブラリに含まれています。たとえば、「time.h」は「ctime」になります。
string is c ++ stl headfileは、テンプレートクラス「string」を提供しますstring.h is c標準headfileは、使用する多くの関数を提供します。 strlen strcpymemcpyのように。グローブ名前空間を使用しない名前空間stdで使用する場合、またはstring.hを使用しない場合は、代わりにcstringを使用できます。
*.h
ヘッダーファイルは多くの場合Cヘッダーファイルであり、おそらくextern "C" { ... }
ラッピングを使用してC++で使用できます。
*.h
のないヘッダーは通常、正規のC++ヘッダーです。
これは経験則のみです。
最新および以前のC++標準(c ++ 11、C++ 03)は、<cstdio>
のようなヘッダーを定義して、名前空間などを使用して元のCヘッダーを適切にラップします。