将每个字符乘10的倍数的方法太缓慢且局限性太多,用sscanf和sprintf晦涩难记且不稳定。
所以有了stringstream,需包含头文件sstream.
将字符串s中的数字复制到tmp中,每次遇到非数字就转化。
#include <iostream>
#include <sstream>
using namespace std;
string s,tmp;
stringstream ss;
int num;
int main(int argc, char const *argv[]) {
while(cin>>s)
{
for(int i=0;i<s.size();i++)
{
if(s[i]>='0'&&s[i]<='9')
tmp+=s[i];
else
{
ss << tmp;
ss >> num;
printf("%d\n",num);
}
}
}
return 0;
}