作者pziyout (pziyout)
看板C_and_CPP
标题Re: [问题] 如何把字串中的数字取出(有空格相间)
时间Tue Jun 20 16:02:05 2017
※ 引述《a855341 (崧楼下的脚印)》之铭言:
: 开发平台(Platform): Win7
: 编译器(Ex: GCC, clang, VC++...):DevC
: 问题(Question):
: 新手上路遇到一个问题
: python可以把一串字串(或输入一大段字串用空白或逗号相间),转换後运算
: 例如 " 10 20 30 123 " 变成-->" '10','20','30','123' "之类的,对数字进行运算
: (利用 .split() + .append() 之类的~)
: 但想请问C 或C++该如何进行?
使用 istringstream 与 vector
#include <iostream>
#include <sstream>
#include <vector>
using namespace std ;
int main() {
int i , n , s ;
string foo = " 23 11 34 98 " ;
istringstream istr(foo) ;
vector<int> nums ;
while ( istr >> n ) nums.push_back(n) ;
cout << ( s = nums[0] ) ;
for ( i = 1 ; i < nums.size() ; ++i ) {
s += nums[i] ;
cout << " + " << nums[i] ;
}
cout << " = " << s << endl ;
return 0 ;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.115.25.29
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1497945727.A.6C0.html
1F:→ a855341: 感谢P大解释方法 我晚点才有电脑来试试看 06/21 11:25