将每个字符乘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;
}
本文介绍了一种使用C++中的stringstream来高效处理字符串中数字的方法。通过读取输入字符串并在遇到非数字字符时进行转换,该方法能够有效地提取并转换字符串内的整数。此技术对于需要频繁解析数字的应用场景特别有用。
&spm=1001.2101.3001.5002&articleId=78585914&d=1&t=3&u=88aa66bbe4254cc2907b65db7444e647)

被折叠的 条评论
为什么被折叠?



