如何在字符串的所有可能子字符串中删除带空格的子字符串?

问题描述 投票:1回答:1

问题是找到给定字符串中的所有可能的子字符串。

我知道这个问题有点类似于此。

Generate all unique substrings for given string

但我是靠自己尝试的。我已经生成了所有可能的组合,但问题是我想要消除一些带有空格的字符串。

int main()
{
    int t;
    cin>>t;
    while(t>0){
        long long int n;
        cin>>n;
        string S;
        cin>>S;
        for(int i=1; i<=S.size(); i++) {
            for(int j=0; j<=S.size()-1; j++) {

                cout<<S.substr(j,i)<<endl;
            }
        }

        t--;
    }
    return 0;
}

输入:

1
3
abb 

实际产量:

a
b
b
ab
bb
b
abb
bb
b

预期产量:

a
b
b
ab
bb
abb

正如您所看到的,其中有一些带有空格的术语,我想在实际输出中消除第6,8和9个术语。

c++
1个回答
0
投票

来自std::string::substr的文档

子字符串是对象的一部分,从字符位置pos开始并跨越len字符(或直到字符串的结尾,以先到者为准)。

你误解了std::string::substr的第二个参数是结束位置,但事实上它是第一个参数的偏移量。

© www.soinside.com 2019 - 2024. All rights reserved.