kestutis

3 lygis | 2 pamokėlė | Žodžių paieška | Patobulinta

Dec 30th, 2013
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. //Vytautas Rimkus Taurages Zalgiriu gimnazija
  2. #include <fstream>
  3. #include <string>
  4. #include <ctype.h>//tolower
  5. #include <sstream>//String stream
  6.  
  7. using namespace std;
  8.  
  9. const char IVEST[]="Duomenys.txt";
  10. const char ISVEST[]="Rezultatai.txt";
  11.  
  12. //Skaitymo is failo funkcija
  13. void skaitymas (const char IV[], string &zodis, string &sakinys)
  14. {
  15.     ifstream in (IV);
  16.     std::getline(in, zodis);
  17.     zodis = zodis.substr(0, zodis.length()-1);//Išmetam nereikalingą eilutės atskyrimo pažymėjimą esantį teksto gale
  18.  
  19.     stringstream strStream;
  20.     strStream << in.rdbuf();
  21.     sakinys = strStream.str();
  22.     in.close();
  23. }
  24.  
  25. void paieska (string zodis, string sakinys, int &z_sk)
  26. {
  27.     //tikslas: ieškoti žodį nepriklausomai nuo jo dydžio. Tikslas pasiekiamas ASCII didžiasias raides sumažinant. Naudojant, pavyzdžiui, Boost biblioteką galima ir kitų koduočių (pvz., UTF-8) simbolius sumažinti.
  28.     for(unsigned i = 0; i < zodis.length(); ++i)
  29.         zodis[i] = tolower(zodis[i]);
  30.     for(unsigned i = 0; i < sakinys.length(); ++i)
  31.         sakinys[i] = tolower(sakinys[i]);
  32.  
  33.     //Ieškom:
  34.     size_t position=-1;
  35.     while((position = sakinys.find(zodis, ++position)) != std::string::npos)
  36.         z_sk++;
  37.     /* Arba 3 eilutėm ilgesnis variantas:
  38.     do {
  39.         position = sakinys.find(zodis, ++position);
  40.         if(position != std::string::npos)
  41.             z_sk++;
  42.     } while (position != std::string::npos);*/
  43. }
  44. // Isvedimo i fala f-ja
  45. void isvedimas (const char IS[], int z_sk)
  46. {
  47.     ofstream out (IS);
  48.     out << z_sk << endl;
  49.     out.close();
  50. }
  51. int main()
  52. {
  53.     setlocale(LC_ALL, "Lithuanian");
  54.     string zodis;
  55.     string sakinys;
  56.     int z_sk=0;
  57.     skaitymas (IVEST, zodis, sakinys);
  58.     paieska (zodis, sakinys, z_sk);
  59.     isvedimas (ISVEST, z_sk);
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment