Algartam Cuardach Téacs (Text Search) in C++- Míniú, Sampla agus Cód

Is modh bunúsach é an t-algartam Cuardach Téacs maidir le próiseáil téacs agus aisghabháil faisnéise. Ligeann an t-algartam seo dúinn tarluithe fotheaghrán(nó patrún) a aimsiú agus a aithint laistigh de phíosa níos mó téacs.

Conas a oibríonn sé

  1. Tosaigh le píosa níos mó téacs(nó doiciméad) agus fotheaghrán le cuardach a dhéanamh air.
  2. Déan atriall trí gach carachtar den téacs go seicheamhach.
  3. Cuir an fhotheaghrán i gcomparáid le cuid den téacs atá ar chomhfhad leis an bhfotheaghrán. Má aimsítear meaitseáil, taifead an suíomh reatha.
  4. Téigh go dtí an chéad suíomh eile agus lean ar aghaidh leis an gcomparáid.

Sampla

Smaoinigh ar an téacs: "Déanaimis cuardach do fhotheaghrán laistigh den téacs seo chun a fheiceáil conas a oibríonn an algartam."

Agus an fotheaghrán le cuardach a dhéanamh ar: "substring"

  1. Tosaigh ag suíomh 0. Déan comparáid idir Let' le "fotheaghrán". Gan mheaitseáil.
  2. Bog go dtí suíomh 1. Déan comparáid et's idir le "fotheaghrán". Gan mheaitseáil.
  3. Bog go dtí suíomh 2. Cuir t's " i gcomparáid le "substring". Níl aon mheaitseáil.
  4. Bog go dtí suíomh 3. Déan comparáid 's s le "fotheaghrán". Gan mheaitseáil.
  5. Bog go dtí suíomh 4. Déan comparáid se le "substring". Gan mheaitseáil.
  6. Bog go dtí suíomh 5. Déan comparáid sea le "substring". Gan mheaitseáil.
  7. Bog go dtí suíomh 6. Déan comparáid earc le "substring". Gan mheaitseáil.
  8. Bog go dtí suíomh 7. Déan comparáid arch le "substring". Gan mheaitseáil.
  9. Bog go dtí suíomh 8. Cuir rch " i gcomparáid le "substring". Níl aon mheaitseáil.
  10. Bog go dtí suíomh 9. Déan comparáid ch w le "substring". Gan mheaitseáil.
  11. Bog go dtí suíomh 10. Déan comparáid h wi le "substring". Gan mheaitseáil.
  12. Bog go dtí suíomh 11. Cuir " i gcomparáid wit le "fotheideal". Níl aon mheaitseáil.
  13. Bog go dtí suíomh 12. Déan comparáid with le "substring". Gan mheaitseáil.
  14. Bog go dtí suíomh 13. Déan comparáid ithi le "substring". Gan mheaitseáil.
  15. Bog go dtí suíomh 14. Déan comparáid thin le "substring". Gan mheaitseáil.
  16. Bog go dtí suíomh 15. Déan comparáid hinn le "substring". Gan mheaitseáil.
  17. Bog go dtí suíomh 16. Déan comparáid in t le "substring". Gan mheaitseáil.
  18. Bog go dtí suíomh 17. Déan comparáid n th le "substring". Gan mheaitseáil.
  19. Bog go dtí suíomh 18. Cuir " i gcomparáid thi le "fo-theaghrán".
  20. Bog go dtí suíomh 19. Déan comparáid this le "substring". Gan mheaitseáil.
  21. Bog go dtí suíomh 20. Cuir his " i gcomparáid le "substring". Níl aon mheaitseáil.
  22. Bog go dtí suíomh 21. Déan comparáid is t le "substring". Gan mheaitseáil.
  23. Bog go dtí suíomh 22. Déan comparáid s te  le "substring". Gan mheaitseáil.
  24. Bog go dtí suíomh 23. Déan comparáid ubst  le "substring". Gan mheaitseáil.
  25. Bog go dtí suíomh 24. Déan comparáid bstr le "substring". Gan mheaitseáil.
  26. Bog go dtí suíomh 25. Déan comparáid stre le "substring". Gan mheaitseáil.
  27. Bog go dtí suíomh 26. Déan comparáid trin  le "substring". Gan mheaitseáil.
  28. Bog go dtí suíomh 27. Déan comparáid ring  le "substring". Aimsíodh meaitseáil, suíomh taifead 27.

Tá an fhotheaghrán "fotheaghrán" le fáil ag suíomh 27 laistigh den téacs.

Cód Samplach i C++

#include <iostream>  
#include <string>  
#include <vector>  
  
std::vector<int> textSearch(const std::string& text, const std::string& query) {  
    std::vector<int> positions;  
  
    for(int i = 0; i <= text.length()- query.length(); ++i) {  
        int j = 0;  
        while(j < query.length() && text[i + j] == query[j]) {  
            ++j;  
        }  
        if(j == query.length()) {  
            positions.push_back(i);  
        }  
    }  
  
    return positions;  
}  
  
int main() {  
    std::string text = "Let's search for a substring within this text to see how the algorithm works.";  
    std::string query = "substring";  
  
    std::vector<int> result = textSearch(text, query);  
  
    std::cout << "Substring found at positions: ";  
    for(int pos: result) {  
        std::cout << pos << ";  
    }  
    std::cout << std::endl;  
  
    return 0;  
}  

Sa sampla seo, textSearch úsáidtear an fheidhm chun suíomhanna an fhotheaghráin "fotheaghrán" a aimsiú laistigh den téacs. Is é an toradh a bheidh air ná veicteoir ina mbeidh suíomhanna tosaigh na gcluichí.