こんにちは私はすべてのテキストを分割する機能を試してみます。たとえば、apple :: google :: dsfと入力すると、区切り文字は::すべての要素が配列の場所に配置されます。私はこれを成功させましたが、今は私のメインでこのアレイを使用できるようにしたいと考えています。だから、私は主に自分の関数で返す配列を出力し、関数Split()から配列を出力したくない。だから私の質問は、これを行う方法です?それを反復よりも、変数でポインタを返す関数の配列を出力する
int main()
{
string buffer; string delimitor = "::";
unsigned int param = 0;
cout << "Please enter how many param: "; cin >> param;
cout << "Please enter something in the buffer: "; cin >> buffer;
Split(buffer, delimitor, param);
system("PAUSE");
return 0;
}
string* Split(string buffer, string delimitor, unsigned int nbr_param)
{
string* arr = new string[nbr_param];
unsigned int start = 0, end = buffer.find(delimitor), count = 0;
while (end != string::npos)
{
arr[count] = buffer.substr(start, end - start);
start = end + delimitor.length();
end = buffer.find(delimitor, start);
count++;
}
if (end == string::npos)
{
arr[count] = buffer.substr(start, end);
}
return arr;
}
'std :: vector'を生の所有ポインタよりもうまく返すほうがいいです。 –
Jarod42