各入力にスペースで区切られたintが含まれている間に、ユーザーから入力を取得するプログラムを作成しています。例:「2 345」。
atoi関数をうまく実装しましたが、文字列を実行してスペースを「スキップ」しようとすると、実行時エラーが発生します。
for(int i=0, num=INIT; i<4; i++)
{
if(input[i]==' ')
continue;
string tmp;
for(int j=i; input[j]!=' '; j++)
{
//add every char to the temp string
tmp+=input[j];
//means we are at the end of the number. convert to int
if(input[i+1]==' ' || input[i+1]==NULL)
{
num=m_atoi(tmp);
i=j;
}
}
}
'if(input [i + 1] ==''.....'の行に例外が発生します。基本的に、「2 2 22」だけを挿入しようとしています。文字列内の実空間と''を比較すると、例外が発生します。
スペースのASCII値である32と比較しようとしましたが、それも失敗しました。何か案は?