Вопрос задан 25.06.2023 в 01:40. Предмет Информатика. Спрашивает Казаков Кирилл.

С/С++ 1. Заданная строка символов. Выяснить, есть ли в этой последовательности символы "запятая"

и "тире", которые встречаются последовательно; 2. Заданная строка символов, среди которых есть точки. Получить строку символов, расположенных после первой точки; 3. Заданная строка символов, который состоит из трех слов, разделенных пробелом. Получить новую строку, в котором порядок слов будет обратным по отношению к исходной строки; 4. Заданная строка символов, который состоит из трех слов, разделенных пробелом. Получить новую строку, в котором слова будут разделены тремя пробелами
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Яковлева Маргарита.

Ответ:

1.

#include <iostream>  

#include <algorithm>  

#include <iomanip>

#include <cmath>

using namespace std;

int main()

{

   long long i, j, k = 0, k1, i1;

   string s, s1, s2 = " ";

   char a = ' ', b;

   /*for(i = 1; i < s.size(); i++)

       if((s[i] == ',' && s[i-1] == '-') || (s[i] == '-' && s[i-1] == ','))

       {

       cout << "Yes" << endl;

       return 0;

       }

   cout << "No" << endl;

}

2.

#include <iostream>  

#include <algorithm>  

#include <iomanip>

#include <cmath>

using namespace std;

int main()

{

for(i = 0; i < s.size(); i++)

   {

       if(s[i] == '.')

       {

           cout << 1 << endl;

           break;

       }

   }

   k = i + 1;

   i++;

   for(j = 0; j <= s.size()-k; j++, i++)

       s1[j] = s[i];

}

3.

#include <iostream>  

#include <algorithm>  

#include <iomanip>

#include <cmath>

using namespace std;

int main()

{

getline(cin, s);

   for(i = 0; i < s.size(); i++)

   {

       if(s[i] == ' ')

           k++;

       if(k == 1)

       {

           i1 = i;

           k++;

       }

       if(k == 3)

           break;

   }

   k = i1 + 1;

   i1 = i;

   k1 = k;

   i++;

   for(j = 0; i < s.size(); j++, i++)

       s1[j] = s[i];

   s1[j] = a;

   j++;

   for(;k < i1; j++, k++)

       s1[j] = s[k];

   s1[j] = a;

   j++;

   i1 = 0;

   for(;i1 < k1; j++, i1++)

       s1[j] = s[i1];

   for(i = 0; i < s.size(); i++)

   {

       a = s1[i]; // СТРОКА s1 СОДЕРЖИТ ИТОГОВУЮ СТРОКУ (по каким-то причинам я не могу вывести строку и размер строки равен 0)

       cout << a;

   }

}

4.

#include <iostream>  

#include <algorithm>  

#include <iomanip>

#include <cmath>

using namespace std;

int main()

{

cin >> s >> s1 >> s2;

   cout << s << "   " << s1 << "   " << s2 << endl; // строка будет, когда мы всё соеденим (для какого-нибудь проекта это недопустимо, но для задачи вполне)

}

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Давайте начнем с решения каждой из ваших задач на языке программирования C++. Вам потребуется использовать строки (std::string) и работать с символами в них.

  1. Поиск символов "запятая" и "тире", идущих последовательно:
cpp
#include <iostream> #include <string> int main() { std::string input; std::cout << "Введите строку символов: "; std::cin >> input; bool found = false; for (size_t i = 0; i < input.length() - 1; ++i) { if (input[i] == ',' && input[i + 1] == '-') { found = true; break; } } if (found) { std::cout << "Символы 'запятая' и 'тире' идут последовательно." << std::endl; } else { std::cout << "Символы 'запятая' и 'тире' не идут последовательно." << std::endl; } return 0; }
  1. Получение строки символов после первой точки:
cpp
#include <iostream> #include <string> int main() { std::string input; std::cout << "Введите строку символов: "; std::cin >> input; size_t dotPos = input.find('.'); if (dotPos != std::string::npos && dotPos < input.length() - 1) { std::string result = input.substr(dotPos + 1); std::cout << "Символы после первой точки: " << result << std::endl; } else { std::cout << "В строке нет точек или точка находится в конце строки." << std::endl; } return 0; }
  1. Переворачивание слов в строке:
cpp
#include <iostream> #include <string> #include <vector> #include <sstream> int main() { std::string input; std::cout << "Введите строку из трех слов, разделенных пробелами: "; std::getline(std::cin, input); std::istringstream iss(input); std::vector<std::string> words; std::string word; while (iss >> word) { words.push_back(word); } if (words.size() == 3) { std::cout << "Перевернутая строка: " << words[2] << " " << words[1] << " " << words[0] << std::endl; } else { std::cout << "Введена неправильная строка. Введите ровно три слова." << std::endl; } return 0; }
  1. Разделение слов пробелами с тремя пробелами между ними:
cpp
#include <iostream> #include <string> int main() { std::string input; std::cout << "Введите строку из трех слов, разделенных пробелами: "; std::getline(std::cin, input); std::string result; size_t spacePos = input.find(' '); if (spacePos != std::string::npos) { std::string firstWord = input.substr(0, spacePos); std::string remaining = input.substr(spacePos + 1); spacePos = remaining.find(' '); if (spacePos != std::string::npos) { std::string secondWord = remaining.substr(0, spacePos); std::string thirdWord = remaining.substr(spacePos + 1); result = firstWord + " " + secondWord + " " + thirdWord; std::cout << "Новая строка: " << result << std::endl; } else { std::cout << "В строке нет второго слова." << std::endl; } } else { std::cout << "В строке нет пробелов." << std::endl; } return 0; }

Это примеры программ на C++, выполняющих задачи, которые вы описали. Вы можете скомпилировать и запустить каждую из них для решения соответствующей задачи.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос