首页 > 解决方案 > 将特定格式的字符串拆分为浮点数和字符串

问题描述

我有一个项目,其中输入采用特定格式,需要从中提取数据。

格式类似于H79.03 = J99.30,我需要获取浮点数。

std::stringstream仅使用and的最佳方法是如何做到这一点std::string

标签: c++stringstringstream

解决方案


是的,你只能使用 stringstream 和 string。首先,用空格替换无效数字。然后取数字。

string originalStr = "H79.03 = J99.30";
string expression = originalStr;
for(int i = 0; i < expression.length(); i++) {
    if (!isdigit(expression[i]) && (expression[i] != '.'))
         expression[i] = ' ';
}
stringstream str(expression);
float firstValue, secondValue;
str >> firstValue;
str >> secondValue;

cout<<firstValue<<endl; // it prints 79.03
cout<<secondValue<<endl; // it prints 99.30

推荐阅读