Friday 24 November 2017

C++ Program to Implement String Matching Using Vectors


Code:

#include    iostream
#include    string.h
#include    vector
using namespace std;

void input_string(vector& str)
{
    char a;
    while (1)
    {
        a = getchar();
        if (a == '\n')
        break;
        str.push_back(a);
    }
    return;
}

void print_string(vector strn)
{
    for (std::vector::iterator it = strn.begin();it != strn.end();++it)
    {
        cout<<*it;
    }
    return;
}

int match_string(vector& original, vector match)
{
    vector::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 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 = "<
        }
     } 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



More C++ Programs:

















100+ Best Home Decoration Ideas For Christmas Day 2019 To Make Home Beautiful

Best gifts for Christmas Day | Greeting cards for Christmas Day | Gift your children a new gift on Christmas day This Christmas d...