文字 0 を含む可能性のある文字列があります。これらは次のような構造に格納されます。
typedef struct somestruct_s {
const unsigned char *string;
size_t length;
};
これらのうちの 2 つを一緒に比較したい場合は、memcmp をそのまま使用できます。
int match = (a->length == b->length) ? !memcmp (a->string, b->string, a->length) : 0;
しかし、大文字と小文字を区別せずにこれらの 2 つを比較したい場合、私の最初の本能は strncasecmp/_strnicmp を使用することですが、その関数は null 文字で停止します。
これを行うことができる一般的なC関数はすでにありますか?自分で書いてもかまいませんが、その前に、知らない標準関数がないことを確認したいと思います。