文字、演算子または数値を含む文字列を読み込んでベクトルに配置する関数を作成しようとしています。私は、ベクトルの1桁に複数桁の数字を配置する方法を見つけるのに苦労しています。これは私が持っているものです。どんな助けもありがたいですベクトルに文字列を追加しようとしています
vector <string> getTokens (string token){
int a = (int) token.length();
string temp;
vector <string> numbers;
char t;
for (int i =0; i <a; i++){
t = token[i];
if (isdigit(t)){ //should i be using a while loop?
numbers.at(i).push_back(t);
//seg fault here
}
else if (t=='+' || t=='-' || t=='/' || t=='*' || t=='^'){
cout << "operator" <<endl;
string tt;
tt+=t;
numbers[i] = tt;
}
else if (t=='(' || t==')'){
string tt;
tt += t;
numbers[i] = tt;
}
'numbers'の世話をすることは*空*です。インデックス作成は範囲外になります。文字列を 'push_back 'する必要があります。 –
はい、数字が「123」の場合はどうなりますか?それは1、2、3の権利をプッシュしますか? – Grace
ループが始まる前に 'numbers.resize(a)'を置くことがそれを行う一つの方法です。 –