几天来,我一直试图为一个函数返回一个字符串数组,但无济于事。当我在 StackOverflow 上搜索时,我发现最好有一个参数来分配数组的值。所以,这是我的代码示例(不是实际用法,而是我如何尝试使用该函数的模型)。如果代码有点草率,我很抱歉。我已经用它测试了一段时间。
void splitOn(string message, string delim, string***toCh) {
string** rString = new string*;
string lArr[numberOf(message, delim)+1];
for(int index=0; index<numberOf(message, delim)+2; index++) {
lArr[index]=message.substr(0, message.find(delim)).c_str();
message = message.substr(message.find(delim)+1, message.length());
rString[index]=&lArr[index];
cout << "IN LOOP "<<*rString[index]<<endl;
}
rString[numberOf(message, string(delim))] = &message;
toCh=&rString;
}
int main(){
string***arr;
splitOn("fox.over.lazy.dog", ".", arr);
cout << **arr[0]<<endl;
笔记:
numberOf() 接受一个字符串和一个定界符(字符串),并返回在字符串中找到定界符的次数。
字符串来自 std::string
lArr(循环内的本地数组)和 *rString 都给出正确的输出。
尽管我试图将数组分配给参数,但学习如何返回数组对我来说更有吸引力。
我可以将它与一个文件和 getLine() 一起破解,但我更愿意学习如何正确地做到这一点。