在 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