用istringstream 解决问题一则

用istringstream 解决问题一则

今天在论坛里看到这样一个问题:
要求将字符串 "mallid=310103123456\ntermno=139654785231\norder=00003995\ngcode=0000130\npaydate=20051031\nname=\ncardno=5248000262355365\nlimit=0804\nprice=2210" 以\n为分界符,提取出所有的字符串。
刚好最近在看STL,感觉可以用stream来解决,于是就小试了一下。结果还真令人满意


#include 
< iostream >
#include 
< sstream >
#include 
< vector >
#include 
< algorithm >
#include 
< ITERATOR >

#define  INPUT_STRING "mallid=310103123456\ntermno=139654785231\norder=00003995\ngcode=0000130\npaydate=20051031\nname=\ncardno=5248000262355365\nlimit=0804\nprice=2210"
    
typedef std::vector
< std:: string >  strvec;

int  _tmain( int  argc, _TCHAR *  argv[])
{
    
using namespace std;

    istringstream iss(INPUT_STRING);
    strvec strList;
    
string strTemp;

    
while(iss >> strTemp)
    
{
        strList.push_back(strTemp);
    }

        
        
// out put the result
    copy(strList.begin(), strList.end(), ostream_iterator<string>(cout, "\n"));

    
return 0;
}



你可能感兴趣的:(用istringstream 解决问题一则)