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

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

Ответ:
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; // строка будет, когда мы всё соеденим (для какого-нибудь проекта это недопустимо, но для задачи вполне)
}
Объяснение:



Давайте начнем с решения каждой из ваших задач на языке программирования C++. Вам потребуется использовать строки (std::string
) и работать с символами в них.
- Поиск символов "запятая" и "тире", идущих последовательно:
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;
}
- Получение строки символов после первой точки:
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;
}
- Переворачивание слов в строке:
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;
}
- Разделение слов пробелами с тремя пробелами между ними:
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++, выполняющих задачи, которые вы описали. Вы можете скомпилировать и запустить каждую из них для решения соответствующей задачи.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili