Guest User

Untitled

a guest
Nov 20th, 2018
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. int kol_znakov(const char* name)
  2. {
  3. char s[100]; FILE* f;
  4. int kol = 0; //переменная для количества знаков препинания в файле
  5. f = fopen(name, "rt");
  6. if (f == NULL) { cout << "Cannot open filen"; return 0; }
  7. while (fgets(s, 100, f)) {
  8. if (ispunct(*s))
  9. {
  10. kol++;
  11. }
  12.  
  13. }
  14. fclose(f);
  15. return kol;
  16. }
  17.  
  18. while (fgets(s, 100, f)) {
  19. size_t len = strlen(s);
  20. for (size_t i = 0; i < len; ++i)
  21. if (ispunct(s[i]))
  22. kol++
  23. }
  24.  
  25. #include <iostream>
  26. #include <string>
  27. #include <fstream>
  28. #include <iterator>
  29. #include <regex>
  30. using namespace std;
  31.  
  32. int main()
  33. {
  34. string str, allText;
  35. ifstream inFile; // объект для обработки файлового ввода
  36. inFile.open("1.txt"); // ассоциировать inFile с файлом
  37. getline(inFile, allText);
  38.  
  39. while (inFile.good()) // пока ввод успешен и не достигнут EOF
  40. {
  41. getline(inFile, str);
  42. allText += str;
  43. }
  44. inFile.close(); // завершить работу с файлом
  45. cmatch result;
  46. // символы пунктуации: ! % ^ & * ( ) – + = { } | ~ [ ] ; ' : " < > ? , . / #
  47. regex words_regex("[!%^&*()–+={}|~\[\]\;':"\<\>\?\,\.\/\#]");
  48.  
  49. auto words_begin = sregex_iterator(allText.begin(), allText.end(), words_regex);
  50. auto words_end = sregex_iterator();
  51.  
  52. cout << "Found: " << distance(words_begin, words_end) << "n";
  53.  
  54. return 0;
  55. }
Add Comment
Please, Sign In to add comment