Привет, я пытаюсь выполнить функцию, которая может разбивать каждый текст, который я хочу. Например, если я ввожу 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