Advertisement
mercMatvey4

Untitled

Feb 21st, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <iomanip>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. int main()
  9. {
  10. setlocale(LC_ALL, "Russian");
  11. ifstream fin ("text.txt");
  12. ofstream fout ("result.txt");
  13. if (!fin)
  14. {
  15. cout << "Файл не может быть открыт!" << endl << endl;
  16. }
  17. else
  18. {
  19. fin.seekg(0, ios::end);
  20. long len = fin.tellg();
  21. char *str1 = new char [len + 1];
  22. fin.seekg(0, ios::beg);
  23. fin.read(str1, len);
  24. str1[len] = '\0';
  25. int k = 0, i = 0, j = 0; // k - начало нового предложения, i - счетчик циклов, j - счетчик найденных слов
  26. char *token;
  27. char deliteli[] = ",.!?\|/<>)(*;:' ";
  28. const int bukvy = 15;
  29. char slovo[bukvy];
  30. const int max = 5000;
  31. char predlojeniya[max], rezerv[max];
  32. cout << "Введите искомое слово: ";
  33. cin >> setw(bukvy) >> slovo;
  34. OemToCharA (slovo, slovo);
  35. system("cls");
  36. cout << "Слово, введенное Вами: " << slovo << endl;
  37. int n = 0;
  38. for (i = 0; i < strlen(str1); i++)
  39. if (str1[i]=='.' || str1[i] == '!' || str1[i] == '?') n++;
  40. if (n == 0) cout << endl << "Текст в файле вообще не содержит предложений" << endl << endl;
  41. else
  42. {
  43. cout << endl << "Результаты занесены в result.txt" << endl;
  44. for (i = 0; i < strlen(str1); i++)
  45. {
  46. if (str1[i]=='.' || str1[i] == '!' || str1[i] == '?')
  47. {
  48. strncpy(predlojeniya, str1+k, i-k+1);
  49. predlojeniya[i-k+1] = '\0';
  50. strcpy (rezerv, predlojeniya);
  51. token = strtok(predlojeniya, deliteli);
  52. while (token != NULL)
  53. {
  54. if (!strcmp(token, slovo)) {fout << rezerv; j++;}
  55. token = strtok(NULL, deliteli);
  56. }
  57. k = i + 1;
  58. }
  59. }
  60. if (j == 0) cout << endl << "К сожалению, текст не содержит предложений со словом <" << slovo << ">" << endl;
  61. }
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement