21xrx.com
2024-12-22 23:19:57 Sunday
登录
文章检索 我的文章 写文章
C++获取字符串的所有子串
2023-06-30 10:09:59 深夜i     --     --
C++ 字符串 子串

在C++中,获取字符串的所有子串可以通过循环和字符串截取来实现。

首先,我们需要定义一个字符串变量,用来存储需要获取子串的字符串。例如:


string str = "hello world";

接下来,我们需要循环遍历这个字符串,从第一个字符开始,依次截取1个字符、2个字符、3个字符……直到截取出整个字符串。代码如下:


for (int i = 0; i < str.length(); i++) {

 for (int j = 1; j <= str.length()-i; j++) {

  string sub_str = str.substr(i, j);

  cout << sub_str << endl;

 }

}

在上面的代码中,我们使用了两个循环,外层循环控制从哪个字符开始截取,内层循环则控制每次截取的字符数。我们使用了string的substr方法来截取子串,并输出到控制台。

执行上面的代码,你将会看到以下输出结果:


h

he

hel

hell

hello

e

el

ell

ello

l

ll

llo

l

lo

o

这些就是字符串"hello world"的所有子串了。

如果你想将这些子串存储起来,可以定义一个数组或是vector,将每个子串依次存储进去。例如:


vector<string> sub_strs;

for (int i = 0; i < str.length(); i++) {

 for (int j = 1; j <= str.length()-i; j++) {

  string sub_str = str.substr(i, j);

  sub_strs.push_back(sub_str);

 }

}

这样,sub_strs数组中就存储了所有的子串。

总结一下,获取字符串的所有子串需要通过循环和字符串截取来实现。我们可以使用两个循环来遍历字符串,分别截取子串并输出或存储起来。这个方法在实际开发中很有用处,比如需要对一个字符串进行全排列操作时,就需要获取其所有的子串。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复