繁体   English   中英

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

[英]How to delete substrings with space in all possible substrings of a 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个术语。

std::string::substr的文档中

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

您可能会误以为std::string::substr的第二个参数是结束位置,但实际上它是第一个参数的偏移量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM