私には3つの機能があります。各配列にコンテンツを追加するもの、すべてのコンテキストを出力するもの、およびその配列のすべての文字列をクリアするもの。私の質問は、文字列配列をクリアする関数の定義に関するものです。私のコードは、元の str[i] または str[0] (最初に追加された文字列を保持する配列の最初のスロット) を除いて、追加された各配列を削除します。何を追加する必要がありますか? 私は何かが欠けていますか?各配列スロットを NULL または str[i] == "" に設定するよりも、すべてをクリアした方がよいでしょう。
これが私の試みです:
void StringList::clear()
{
for(int i=0;i<=numberOfStrings;i++)
{
for(int j=i;j<=numberOfStrings-1;j++)
{
str[j] = str[j+1];
}
numberOfStrings--;
}
cout<<"All strings cleared"<<endl;
}
このコードは、最初に追加された文字列以外のすべてをクリアします。考え?おそらく非常に単純で、私の脳は適切に機能していませんが、検索したものはすべて機能しません。
とにかくループせずにクリアする方法はありますか? str[numberOfStrings] を使用するだけですか?