Программа на языке C++
Даны две строки типа string: substr; str.
Символы в строках - маленькие латинские буквы.
Требуется определить количество вхождений строки substr в строку str.
Количество вхождений вывести в переменной cnt.
Примеры:
qwe wqeeqeweqweewq
//1
eqe wqeeqeweqweewq
//1
w wqqewewqeewq
//4
d wqeeqe
//0
qweweqw qweweqwq
//1
Ответы
#include <iostream>
#include <string>
using namespace std;
int main()
{
int cnt = 0;
string substr, str;
cin >> substr >> str;
for (size_t i = 0; i < str.length()-substr.length()+1; i++)
{
for (size_t j = 0; j < substr.length(); j++)
{
if (str[i+j] != substr[j])
{
break;
}
else
{
if (j == substr.length() - 1) ++cnt;
}
}
}
cout << cnt;
return 0;
}
Все тесты которые ты написал, отработали.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str,sub;
int cnt=0;
cout<<"substr: "; cin>>sub;
cout<<"str: "; cin>>str;
int i=0,j=0;
while (i<str.length()) {
while ((str[i]!=sub[j]) && (i<str.length())) i++;
if (i<str.length()) {
while ((str[i]==sub[j]) && (i<str.length()) && (j<sub.length())) {
i++; j++;
}
if (j==sub.length()) cnt++;
j=0;
}
}
cout<<cnt<<endl;
system("pause");
return 0;
}