fork(1) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. // Проверяет, принадлежит ли символ алфавиту
  5. bool AllowedSign(char x) {
  6. return ((x >= '0' && x <= '9') || (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z'))?1:0;
  7. }
  8.  
  9. int main() {
  10. char x;
  11. int count = 0; // Счетчик слов в предложении
  12. bool wordBegin = true; // Будет ли следующий считанный символ, принадлежащий алфавиту, началом нового слова
  13. while(EOF != (x = getchar())) {
  14. if(AllowedSign(x) && wordBegin) { // Если текущий символ принадлежит алфавиту и ожидается новое слово
  15. count++;
  16. wordBegin = false; // Указываем, что последующие находимые символы алфавита не будут началом слова
  17. } else if(x == ' ') // Если текущий символ - пробел
  18. wordBegin = true; // Указываем для следующей итерации, что текущее слово "закончилось" и ожидается новое
  19. }
  20. cout << count;
  21. return 0;
  22. }
Success #stdin #stdout 0s 3464KB
stdin
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
stdout
19