fork download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main() {
  6. string text =
  7. "Dog - woof\n"
  8. "Cat - meow\n"
  9. "Bird - tweet\n"
  10. "mouse - squeek\n"
  11. "Cow - moo\n"
  12. "Frog - croak\n"
  13. "the elephant - toot\n"
  14. "Ducks - quack\n"
  15. "fish - blub\n"
  16. "the seal - ow ow ow";
  17.  
  18. string line;
  19. size_t start = 0;
  20.  
  21. while (true) {
  22.  
  23. size_t end = text.find('\n', start);
  24.  
  25.  
  26. if (end == string::npos)
  27. line = text.substr(start);
  28. else
  29. line = text.substr(start, end - start);
  30.  
  31. // ---- ОБРОБКА ОДНОГО РЯДКА ----
  32. size_t pos = line.find("-");
  33.  
  34. if (pos != string::npos) {
  35. string name = line.substr(0, pos);
  36.  
  37. while (!name.empty() && name.front() == ' ')
  38. name.erase(0, 1);
  39.  
  40. bool makeUpper = true;
  41. for (size_t i = 0; i < name.size(); i++) {
  42. if (name[i] == ' ') {
  43. makeUpper = true;
  44. } else if (makeUpper) {
  45. if (name[i] >= 'a' && name[i] <= 'z')
  46. name[i] -= 32;
  47. makeUpper = false;
  48. }
  49. }
  50.  
  51. cout << name << endl;
  52. }
  53.  
  54. // Якщо це був останній рядок
  55. if (end == string::npos)
  56. break;
  57.  
  58. // Перехід на наступний рядок
  59. start = end + 1;
  60. }
  61.  
  62. return 0;
  63. }
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
Dog  
Cat  
Bird  
Mouse  
Cow  
Frog  
The Elephant  
Ducks  
Fish  
The Seal