如何在C ++中将字符串拆分为几个字符串?

时间:2014-03-27 12:46:24

标签: c++ string algorithm

首先我不想使用boost库。我有一个程序正在读取一行并将其保存为字符串:

ajf938    sshd         Thu Mar 27 23:25   still logged in  c110-20-242-157.mirnd4.nsw.optusnet.com.au

然后我试图把它分成5个字符串。但是,字符串中每个元素的大小将被更改。另一个字符串可以是:

jcm995    sshd         Thu Mar 27 15:18 - 15:19  (00:00)   192.131.251.2

我已经拥有的是

pos=name.find(' ',0);
cout<<pos<<endl;
string username = name.substr(0,pos);
cout<<username<<endl;

然后我从那个位置寻找拳头而不是角色:

find_first_not_of(' ');

但我认为应该有其他有效的方法。任何想法都将不胜感激。

更新:

这是我到目前为止所做的:

if(name.find('(',0))
        {
            string username;
            string date;
            string duration;
            string hostname;
            int val = 0;
            istringstream iss(name, istringstream::in);
            string word;
            while( iss >> word )
            {
                if(val==0){
                    username = word;
                }
                else if(val>1 && val<6)
                {
                    date +=" "+word;
                }
                else if(val==6){
                    duration = word;
                }
                else if(val == 7){
                    hostname=word;
                }
                val++;
            }
            cout<<"usename= "<<username << " date= "<<date <<" duration= "<<duration<<" hostname= "<<hostname<<endl;

        }

0 个答案:

没有答案