Costruire un programma per il 'Matching di stringhe' utilizzando l'Algoritmo Greedy.
Stringa A: ababcab
Stringa B: cab
// programma per la ricerca di stringhe utilizzando l'algoritmo greedy

#include<stdio.h>
#include<stdbool.h>

// Funzione per trovare la corrispondenza tra la stringa data e il pattern
bool stringMatching(char string[], char pattern[])
{
    // calcola la lunghezza della stringa data
    int n = strlen(string);

    // calcola la lunghezza del pattern dato
    int m = strlen(pattern);

    // indici della stringa e del pattern
    int i = 0, j = 0;

    // Ciclo greedy per la corrispondenza
    while(i < n && j < m) {
        if(string[i] == pattern[j]) {
            i++;
            j++;
        }
        // Torna indietro di una posizione nella stringa
        else {
            i = i - j + 1;
            j = 0;
        }
    }

    // Verifica se il pattern è stato trovato o meno
    if(j == m)
        return true;

    return false;
}

// Codice driver
int main()
{
    char string[] = "ababcab";
    char pattern[] = "cab";

    bool flag = stringMatching(string, pattern);

    if (flag)
        printf("Il pattern corrisponde");
    else
        printf("Il pattern non corrisponde");

    return 0;
}