如何从空格分隔的单个字符串中提取多个子字符串?

时间:2017-03-19 16:33:48

标签: c++ arrays string character-encoding

我正试图解决这个问题https://a2oj.com/p?ID=24

我的初始代码(仅测试输入部分)

#include<iostream>
using namespace std;

int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int l;
        string input;
        cin>>l>>input;

        string texts[l];

        int c=0;
        for(int i=0;i<input.size();i++)
        {
            if(input[i]==' ')
                {c++;continue;}
            else
            {
                texts[c]=texts[c]+input[i];
            }
        }

        for(int i=0;i<l;i++)
            cout<<texts[i]<<endl;
    }
    return 0;
}

它的唯一扫描,直到它收到第一个&#39; &#39;(空格),而不是其他子字符串。

1 个答案:

答案 0 :(得分:0)

你可以使用getline();

在这段代码中,我使用't'作为分隔符,你可以使用空格“”或任何你想要的

示例代码

#include <iostream.h>

void main()
{
   char line[100];
   cout << " Type a line terminated by 't'" << endl;
   cin.getline( line, 100, 't' );
   cout << line;
}