Advertisement
Guest User

Untitled

a guest
Apr 25th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. //Для каждой задачи варианта разработайте отдельные программы, по возможности, декомпозируйте ее на подзадачи.
  2.  
  3. //В первой задаче не используйте функции модуля string.h для выполнения операций над строкой, а рассматривайте строку как массив символов.
  4.  
  5. //Во второй задаче используйте функции файла string.h для выполнения операций над строкой.
  6. /*Вариант 7
  7. Дано целое число, записать его в строковый форма, предварительно проверив, что оно состоит из цифр десятичной системысчисления.
  8.  
  9. Дано предложение, состоящее из слов, разделенных запятой или пробелами.Вывести слова предложения предварительно преобразовав их следующим образом :
  10. перенести последнюю букву в начало слова;
  11. удалить из слова повторные вхождения каждой буквы.*/
  12. #include <iostream>
  13. #include <Windows.h>
  14. #include <conio.h>
  15. #include <algorithm>
  16. #include <string>
  17.  
  18.  
  19. using namespace std;
  20.  
  21. void proverka(char *charr)
  22. {
  23. bool flag = true;
  24. int count = 0;
  25. int ch;
  26. cout << "Enter Number" << endl;
  27. while ((ch = _getch()) != 13)
  28. {
  29. cout << (char)ch;
  30. // Считать символ
  31. if ((ch > 48) && (ch < 57))
  32. {
  33. charr[count] = ch;
  34.  
  35. }
  36. else
  37. {
  38. flag = false;
  39. break;
  40. }
  41. count++;
  42. if (count == 13)
  43. break;
  44. }
  45. if (!flag)
  46. charr[0] = 0;
  47. }
  48.  
  49. void first()
  50. {
  51. try
  52. {
  53. char charr[13] = { 0 };
  54. proverka(charr);
  55. if (charr[0] == 0)
  56. cout << endl << "Error"<<endl;
  57. else
  58. {
  59. int number = atoi(charr);
  60. cout << endl << number << endl;
  61. }
  62. }
  63. catch (exception const &e)
  64. {
  65. cout << endl << "Error: " << e.what() << endl;
  66. }
  67. }
  68.  
  69. string Replace(string in)
  70. {
  71. in.erase(unique(in.begin(), in.end()), in.end());
  72. return in;
  73. }
  74.  
  75. string Swap(string in)
  76. {
  77. swap(in[0], in[in.length()-1]);
  78. return in;
  79. }
  80. void Second()
  81. {
  82. string str;
  83. size_t pos = 0;
  84. string token;
  85.  
  86. cout << "Введите строку: " << endl;
  87. ws(cin);
  88. getline(cin, str);
  89.  
  90. while (str.length() > 0)
  91. {
  92. pos = str.find_first_of(", ");
  93. if (pos == string::npos)
  94. pos = str.length();
  95. else if (pos == 0)
  96. {
  97. str.erase(0, 1);
  98. continue;
  99. }
  100. token = str.substr(0, pos);
  101. token = Replace(token);
  102. token = Swap(token);
  103. cout << "\tСлово:" << token << endl;
  104. str.erase(0, pos + 1);
  105. }
  106. }
  107.  
  108. int main()
  109. {
  110. SetConsoleCP(1251);
  111. SetConsoleOutputCP(1251);
  112. int command;
  113. while (true)
  114. {
  115. cout << "Введите команду: ";
  116. cin >> command;
  117. if (cin.fail())
  118. {
  119. cout << "Необходим ввод числа! " << endl;
  120. cin.clear();
  121. cin.ignore(1000, '\n');
  122. command = 0;
  123. }
  124. else
  125. {
  126. switch (command)
  127. {
  128. case 2:
  129. Second();
  130. break;
  131. case 1:
  132. first();
  133. break;
  134. default:
  135. cout << "Введена неверная команда: ";
  136. break;
  137. }
  138. }
  139. }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement