メモリバッファを定数文字列と比較する正しいC++の方法は何ですか - strcmp(buf, "sometext")
?一時的なstd :: stringオブジェクトを作成した結果、不要なメモリコピーを避けたい。バッファをC++のconst char *と比較する
ありがとうございました。
メモリバッファを定数文字列と比較する正しいC++の方法は何ですか - strcmp(buf, "sometext")
?一時的なstd :: stringオブジェクトを作成した結果、不要なメモリコピーを避けたい。バッファをC++のconst char *と比較する
ありがとうございました。
あなただけの平等のためにチェックしている場合、あなたはあなたのバッファがテキストよりも小さくすることができるならば、これは追加のロジックが必要になります当然のstd::equal
#include <algorithms>
const char* text = "sometext";
const int len = 8; // length of text
if (std::equal(text, text+len, buf)) ...
使用することができるかもしれ
memcmpを使用し、最後のパラメータとして、最小サイズの2データを使用します。
また、2つのサイズが同じであることを確認してください。そうでない場合は、最短の接頭辞を単純に比較しています。
彼のデータはまだ文字列にはありません。彼はそれを1つに入れるのを避けようとしています。 –
ありがとう、それを修正しました。 –
あなたは、あなたのバッファの内容を知っていれば
const char* const CONST_STRING = "sometext";
strcmp(buf,CONST_STRING);
上記のすべての答えから、私はC++/STLにそのような比較を行うツールがなく、単純なCアプローチを使用しなければならないことを理解していますか? – jackhab
どのような比較ですか?実際のコードを投稿してください! –
strcmpのは良いですが、のようにそれを行うことがあります。 std::strncmp
は、バッファオーバーフローに対するセキュリティを少し強化します。
いくつかのコードを投稿してください何を求めているのかを示すstd :: stringを使用します。 –