fork(1) download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main() {
  6. string s1, s2;
  7.  
  8. do {
  9. cout << "String : ";
  10. getline(cin, s1);
  11. }
  12. while (s1.empty());
  13.  
  14. do {
  15. cout << "Substring : ";
  16. getline(cin, s2);
  17. }
  18. while (s2.empty());
  19.  
  20. string::size_type s1_size = s1.size(),
  21. s2_size = s2.size(),
  22. m = 0,
  23. n = 0,
  24. k;
  25. int count = 0;
  26.  
  27. while (n < s1_size) {
  28. if (s1[n] == s2[m]) {
  29. k = n;
  30. do {
  31. ++n;
  32. ++m;
  33. }
  34. while (n < s1_size && m < s2_size && s1[n] == s2[m]);
  35. if (m == s2_size) {
  36. ++count;
  37. }
  38. else {
  39. n = k + 1;
  40. }
  41. m = 0;
  42. }
  43. else {
  44. ++n;
  45. }
  46. }
  47.  
  48. if (count == 0) {
  49. cout << "String contains no substring!";
  50. }
  51. else {
  52. cout << "String contains substring " << count << " time(s)!";
  53. }
  54. }
  55.  
Success #stdin #stdout 0.01s 5648KB
stdin
Joe Bob Joe Smoe Joe Billy
Joe
stdout
String : Substring : String contains substring 3 time(s)!