This C++ program implements string matching using vectors. A text and a pattern is given as input. The pattern is searched for in the text and all instances of the pattern are given as output.
This C++ program is successfully compiled and tested on our system. The program output is given below.
/*
* C++ Program to Implement String Matching Using Vectors
*/
#include<iostream>
#include<string.h>
#include<vector>
using namespace std;
void input_string(vector<char>& str)
{
char a;
while (1)
{
a = getchar();
if (a == '\n')
break;
str.push_back(a);
}
return;
}
void print_string(vector<char> strn)
{
for (std::vector<char>::iterator it = strn.begin();it != strn.end();++it)
{
cout<<*it;
}
return;
}
int match_string(vector<char>& original, vector<char> match)
{
vector<char>::iterator p,q, r;
int i = 0;
p = original. begin();
while (r <= match.end() && p <= original.end())
{
r = match.begin();
while (*p != *r && p < original.end())
{
p++;
i++;
}
q = p;
while (*p == *r && r <= match.end() && p<=original.end())
{
p++; i++;
r++;
}
if (r >= match.end())
{
original.erase(original.begin(), q + 1);
return (i - match.size() + 1);
}
if (p >= original.end())
return 0;
p = ++q;
}
}
int main()
{
std::vector<char> original,match;
int i,result,k=0,sum=0;
cout<<"Enter String:";
input_string(original);
cout<<"Enter Search Pattern:";
input_string(match);
if (match.size() > original.size())
{
cout<<"Error:Original string too small.";
}
do
{
result = match_string(original, match);
sum += result; //to store previous found position
if (result > 0)
{
k++;
cout<<"\nMatch found from Position = "<<sum;
}
} while (result > 0); //loop to find all patterns
if (k == 0)
cout<<"Error:Match Not Found";
return 0;
}
Output: Enter String:all men went to apall mall Enter Search Pattern:all Match found from Position = 1 Match found from Position = 19 Match found from Position = 24
Sanfoundry Global Education & Learning Series – 1000 C++ Programs.
Sanfoundry Certification Contest of the Month is Live. 100+ Subjects. Participate Now!
advertisement
advertisement
If you wish to look at all C++ Programming examples, go to C++ Programs.
Next Steps:
- Get Free Certificate of Merit in C++ Programming
- Participate in C++ Programming Certification Contest
- Become a Top Ranker in C++ Programming
- Take C++ Programming Tests
- Chapterwise Practice Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Chapterwise Mock Tests: Chapter 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Related Posts:
- Practice Computer Science MCQs
- Buy Programming Books
- Buy C++ Books
- Apply for Information Technology Internship
- Practice Programming MCQs