目的:
把一个带逗号的字符串比如“”aa,bbb,cc,dd“”分成四个小的字符串,利用结构体返回一个数组
#include <iostream>
#include <string>
using namespace std;
class getArray //1. 设置一个结构体class getArray来存放数组,优点是比指针安全,缺点是处理大量数据时效率不高
{
public:
string temp[4]; // 2. 结构体内只放需要用的数组
}X;//3.要给结构体建立一个对象,用这个对象来具体操作数组
class getArray split(string input) //4. 函数返回值的类型是 结构体名class getArray
{
int j = 0;
for (unsigned i = 0; i < input.length(); i++)
{
if (input[i] != ',')
X.temp[j] += input[i]; //5. 操作数组时,要调用对象.注意数组不用再定义,因为结构体里已经定义
else
j++;
}
return X; //6. 返回值直接为结构体的对象
}
int main()
{
string fullstring = "aa,bbb,cc,ddd";
class getArray Y=split(fullstring); //7. 返回值的类型是class getArray,还要定义一个结构体对象Y
for (int j = 0; j <4; j++)
cout << Y.temp[j] << " "; //8. 输出数组元素时,仍要调用结构体对象Y
cout << endl;
system("pause");
return EXIT_SUCCESS;
}
编程收获:
因为c++不允许直接把数组作为返回值,所以利用结构体返回一个数组
除了定义一个结构体之外,函数返回值也要是结构体类型。每次操作数组的时候,都要调用结构体对象名具体改动,见备注的8个步骤
运行结果如图: