0

我有 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] ?

4

1 回答 1

2

std::string有一个 clear() 函数,所以除了第一个元素之外,你只需要调用每个元素:

void StringList::clear()
{
    // Start from 1 so that we won't clear the first string.
    for(int i = 1; i <= numberOfStrings; i++) {
            str[i].clear();
    }
    cout << "All strings cleared" << endl;
}
于 2013-06-08T04:46:10.200 回答