可能性の重複:
Difference between string.h and cstring?標準ヘッダーファイルを含みます。 string.hまたはcstring?または両方?
math.h
の代わりにcmath
またはその逆を含む
に関して標準ヘッダファイルを含むとき、C++でのより良いプログラミングの練習は何ですか? string.h
またはその逆の代わりにcstring
含む
?
他の<c*>
と<*.h>
のヘッダーファイルでは、同じことを実行しているようです。
可能性の重複:
Difference between string.h and cstring?標準ヘッダーファイルを含みます。 string.hまたはcstring?または両方?
math.h
の代わりにcmath
またはその逆を含む
に関して標準ヘッダファイルを含むとき、C++でのより良いプログラミングの練習は何ですか? string.h
またはその逆の代わりにcstring
含む
?
他の<c*>
と<*.h>
のヘッダーファイルでは、同じことを実行しているようです。
<cstring>
は新しいものです。 <string.h>
は実際には下位互換性のために(もちろんCのために)存在します。違いは<cstring>
はstd
名前空間に文字列関数を置きますが、<string.h>
はそれらをグローバル名前空間に置きます。
さらに、<cstring>
はタイプセーフティを促進するために特定の関数のタイプを変更します。例えば、C宣言
char *strchr(char const *, int);
は(std
名前空間内の)オーバーロード<cmath>
より慣用未満C状作る<math.h>
とfurther differencesある<cmath>
の場合
char *strchr(char *, int);
char const *strchr(char const *, int);
によって置き換えられます。
新しいコードには<cstring>
が好ましく、機能には接頭辞std::
が使用されます。
@ジェフロミ:まったくダストではありません。この質問は ''にも関係します。 –