我想標記一個字符串,例如每次出現「」(空格)時,顯示「5 + 3 * 2 - 4」。操作員標誌應保存在不同的命名字符變量中。數字在不同的已命名的浮點變量中。 例如令牌化字符串並將令牌放入不同數據類型的變量中?
float num_1 = 5;
float num_2 = 3;
float num_3 = 2;
float num_4 = 4;
char op_1 = '+';
char op_2 = '*';
char op_3 = '-';
這是我迄今爲止的標記器。但是這隻能打印控制檯中的數字和操作。那不是我想要的。
std::vector<std::string> strings;
std::istringstream f("3 + 2 * 4 ");
std::string s;
while (std::getline(f, s, ' ')) {
std::cout << s << std::endl;
strings.push_back(s);
}
我把這個東西用了一個永恆的東西,但是我從來沒有發現對我有用的東西。即時通訊只是一個初學者和大多數代碼我GOOGLE了太難,我真的明白,或者它只是不是我所需要的:/
下面是有關令牌化的很好的信息:http://stackoverflow.com/questions/53849/how-do-i-tokenize-a-string-in-c。我建議從結果上反思:你想用這個來達到什麼目的?什麼數據結構將是必要的?然後,如何計算來自輸入的數據。 – Gerriet
將每個字符和整數存儲在不同變量中的唯一方法是手動聲明每個變量併爲其分配一個值。如果您嘗試標記的表達式變大,則需要更多變量。考慮使用'array'或'vector'來存儲你的值。 – alejandrogiron