21xrx.com
2025-06-20 13:11:39 Friday
文章检索 我的文章 写文章
C++获取字符串的所有子串
2023-06-30 10:09:59 深夜i     25     0
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数组中就存储了所有的子串。

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

  
  

评论区