Программа на языке c++даны две строки типа string: substr; str.символы в строках - маленькие латинские буквы.требуется определить количество вхождений строки substr в строку str.количество вхождений вывести в переменной cnt.примеры: qwe wqeeqeweqweewq//1eqe wqeeqeweqweewq//1w wqqewewqeewq//4d wqeeqe//0qweweqw 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;
}