在 C++ 中查找一个字符串在另一个字符串中所有出现位置的索引
假设我们有字符串 str,和另一个子串 sub_str,我们必须找到 sub_str 在 str 中所有出现位置的索引。假设 str 是 “aabbababaabbbabbaaabba”,sub_str 是 “abb”,那么索引将是 1 9 13 18。
为了解决此问题,我们可以在 C++ STL 中使用 substr() 函数。此函数接受子字符串将开始检查的初始位置和子字符串的长度,如果与 sub_str 相同,则返回位置。
示例
#include<iostream>
using namespace std;
void substrPosition(string str, string sub_str) {
bool flag = false;
for (int i = 0; i < str.length(); i++) {
if (str.substr(i, sub_str.length()) == sub_str) {
cout << i << " ";
flag = true;
}
}
if (flag == false)
cout << "NONE";
}
int main() {
string str = "aabbababaabbbabbaaabba";
string sub_str = "abb";
cout << "Substrings are present at: ";
substrPosition(str, sub_str);
}输出
Substrings are present at: 1 9 13 18
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP