c++ - 解析字符串并将标记作为参数传递

标签 c++ string parameters split token

我有一个示例文件,其中一行如下所示:CAR;FORD;FIESTA;WHITE;20300;19900;23555

现在我需要解析这一行,其中前四个属性应该单独存储,最后三个(或更多)需要计算平均值 (“选择正确的方法”正在进行中……)

当我成功将其标记化后,我需要将这些标记传递给一个类,该类对每个属性都有一个单独的(公共(public))变量

class ClassA{ //aggregate class 

public:
  string vehicle;
  string brand;
  string model;
  string color;
  double avgPrice; 

  //...  
};

什么是最合适的方法?

  1. 标记化时,我应该将所有标记存储在一个数组中,然后传递给 数组作为参数,然后将初始化列表添加到
    ClassA 构造函数,其中我将每个相应的 Arr[n] 分配给 一个属性?

  2. 或者我应该为每个属性创建一个临时变量,然后 然后执行标准初始化列表。但这会使 非常笨拙的代码,我不得不重复同样的事情 4 每次将 token 存储在不同的变量中。

欢迎提供更好的解决方案,因为我只是 C++ 的初学者,我对其功能的了解很基础。

最佳答案

对我来说有两种解决方案:

  1. 你的类解析字符串
  2. 您的类(class)刚刚接收到 token ,并且解析较早完成。

通常,类的属性必须是私有(private)的,甚至是 protected 。但是在类外部直接访问这些属性可以避免类控制值的输入和输出。

如果你的类(class)专门用于解析,那么解决方案 1 对我来说是最好的。 否则,更喜欢第二种解决方案:只需解析您的字符串并在您的类(甚至构造函数)的函数中给出一个字符串 vector 作为参数。

关于c++ - 解析字符串并将标记作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26466614/

相关文章:

c++ - 在 C++ 中删除文件时出错

c++ - Gnuplot - 保存输出

c++ - 派生类调用父类的方法

java - 修改 String/Integer 对象并检查它是否影响以该对象作为参数的类对象

string - Flutter/Dart 中单引号和双引号的区别

c++ - 作为函数参数的 THREADENTRY32 结构数组导致 C2061

c++ - 成员函数作为 map 比较器?

c++ - C 字符串与带有类成员函数的字符串类语法

java - 识别同一调用堆栈中的重复调用 - java

variables - PowerShell 参数 - "The term ' 参数'未被识别为 cmdlet 的名称”