统计字符串中子串出现的次数_牛客题霸_牛客网 (nowcoder.com)
思路是 求出子串的长度,一个字符一个字符地比较子串和原字符串,如果连续比较子串长度个元素,都相同,那么原字符串中就含有该子字符串
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100] = { '\0' };
char substr[100] = { '\0' };
cin.getline(str, sizeof(str));
cin.getline(substr, sizeof(substr));
int count = 0;
for (int i = 0; i < strlen(str); i++) {
bool flag = true;
int k = i;
for (int j = 0 ; j < strlen(substr); j++) {
if (str[k] != substr[j]) {
flag = false;
//如果某个字母在原串和子串中不同,那么这一段字符即不同
//立即跳出循环,从下一个字符开始比较
break;
} else
k++;
}
if (flag){
count++;
}
}
cout << count << endl;
return 0;
}
如原字符串和子字符串分别为:
abcdefghi
cde
从a开始比较三个字符
不符合,继续,从b开始比较3个字符
以此类推
首发: