文字列イテレータを使用して文字列から数値を抽出するためにこのコードを書いています。 イテレータは、最初の番号をピックアップし、それを1日と呼びます。 なぜそれはそうですか?イテレータは数字全体を読み込むことになっていますが、最初の数字だけを読みます。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string myAge = "I am 23 years old";
string::iterator iterator;
char numberInCharacterForm;
string numberInStringForm;
stringstream convertToString;
for(iterator = myAge.begin();iterator!=myAge.end();iterator++)
{
numberInCharacterForm = *iterator;
if(numberInCharacterForm >= '0' & numberInCharacterForm <='9')
{
convertToString << numberInCharacterForm;
convertToString >> numberInStringForm;
}
}
cout << numberInStringForm <<endl;
getch();
return 0;
}
出力は2です。
あなたは代わりに '&' の16行目に '&&' を望むことでしょう、ところで – Schnommus