我有一个字符串str ( "1 + 2 = 3" )
。我想以十进制值(不是 ASCII )获取字符串的各个数字。我试过atoi
和c_str()
. 但它们都要求整个字符串只包含数字。我正在用 C++ 编写我的代码。
任何帮助都会很棒。
我的挑战是评估前缀表达式。我正在从每行包含一个前缀表达式的文件中读取。我用于标记和存储变量的代码片段如下所示。文件的每一行都包含数字和运算符(+
, -
, *
),它们之间用空格分隔。
前任 -line = ( * + 2 3 4);
ifstream file;
string line;
file.open(argv[1]);
while(!file.eof())
{
getline(file,line);
if(line.length()==0)
continue;
else
{
vector<int> vec;
string delimiters = " ";
size_t current;
size_t next = -1;
do
{
current = next + 1;
next = line.find_first_of( delimiters, current );
if((line[next] <=57)&&(line[next] >=48))
vec.push_back(atoi((line.substr( current, next - current )).c_str()));
}while (next != string::npos);
cout << vec[0] << endl;
}
}
file.close();
在这种情况下vec[0]
打印50
not 2
。