私は文字列を持っていますstr ( "1 + 2 = 3" )
。文字列の個々の数値を 10 進値で取得したい ( 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();
この場合、 notvec[0]
を出力します。50
2