1. ホーム
  2. c

[解決済み] char 配列を空にするには?

2022-02-08 14:14:41

質問

char members[255]のような文字列の配列を持っています。ループを使わずに完全に空にするにはどうしたらよいでしょうか?

char members[255];

空っぽというのは、もし何らかの値が格納されていたなら、その値は格納されていないはずだという意味です。例えば、私がstrcatを行う場合、古い値は残っていないはずです。

members = "old value";

//empty it efficiently
strcat(members,"new"); // should return only new and not "old value new"

解決方法は?

使用方法

  memset(members, 0, 255);

総じて

  memset(members, 0, sizeof members);

は、配列がスコープ内にある場合、または

  memset(members, 0, nMembers * (sizeof members[0]) );

はポインタの値だけで、nMembers は配列の要素数である場合。


EDIT もちろん、今は配列をクリアする汎用的なタスクから、純粋に文字列をリセットするタスクに要件が変わっています。 memset はやりすぎで、最初の要素をゼロにするだけで十分です(他の回答で指摘されています)。


EDIT メムセット を使用する必要があります。 include string.h .