Объясните как работает программа:
#include <iostream>
#include <string>
using namespace std;
int main() {
system("chcp 1251 > null");
int i, k, a = 0, dl = 0;
char s[100];
cout << "Введите текст:\n";
cin.getline(s, 100);
dl= strlen(s);
for (i = dl; i >= 0; i--) {
if (s[i] == ' ') {
for (k = i + 1; k <= (i + a); k++) {
cout << s[k];
}
a = 0;
cout << " ";
}
a++;
}
for (int i = 0; i < dl; i++) {
if (s[i] == ' ') break;
cout << s[i];
}
system("pause > null");
return 0;
}
C/C++
Программирование C++. Задание на строки и символы
Задача программы: это инвертирование строки основываясь на пробелах.
Ввод: 123 456 789
Вывод: 789 456 123
1. Переводим консоль на 1251 страницу и очищаем (system("chcp 1251 > null");).
2. Создаём целочисленные i, k, a = 0 и dl = 0.
3. Создаём массив из символов, который будет строкой.
4. Вводим текст через метод getline (он принимает пробелы).
5. В dl мы записываем длину получившейся строки.
6. Создаём в цикл начинающийся с конца строки и проверяем, является ли элемент этой строки пробелом. Если да, то начиная от следующего элемента и до i+a выводим в консоль. Затем зануляем переменную a и выводим пробел. При каждой итерации главный цикл, который проходит всю строку, прибавляет к значению a единицу.
7. Создаём новый цикл, который, проверяет каждый символ. Если этот символ пробел, то он останавливает программу. Иначе просто выводит значения до пробела.
Ввод: 123 456 789
Вывод: 789 456 123
1. Переводим консоль на 1251 страницу и очищаем (system("chcp 1251 > null");).
2. Создаём целочисленные i, k, a = 0 и dl = 0.
3. Создаём массив из символов, который будет строкой.
4. Вводим текст через метод getline (он принимает пробелы).
5. В dl мы записываем длину получившейся строки.
6. Создаём в цикл начинающийся с конца строки и проверяем, является ли элемент этой строки пробелом. Если да, то начиная от следующего элемента и до i+a выводим в консоль. Затем зануляем переменную a и выводим пробел. При каждой итерации главный цикл, который проходит всю строку, прибавляет к значению a единицу.
7. Создаём новый цикл, который, проверяет каждый символ. Если этот символ пробел, то он останавливает программу. Иначе просто выводит значения до пробела.
Вводится предложение в строку s.
Начинается перебор символов с конца предложения.
Если найден не пробел - то отсчитывается счетчик a
Если найден пробел - то выводятся символы правее пробела количеством а (тоесть длиной слова), после чего счет а обнуляется и перебор идет дальше.
В конце отдельным циклом выводится первое слово (до первого пробела).
В итоге выводятся слова в обратном порядке.
В программе есть ошибки. К примеру выводится два пробела вместо одного. Чтобы исправить - достаточно перед a++ добавить else.
Так же можно обойтись без последнего цикла, если модифицировать проверки:
if (s[i] == ' ' || i == 0)
for (k = i?i+1:i; k <= (i + a); k++)
cout << (i?" ":"")
последнее чтобы в конце не печатался лишний пробел
Начинается перебор символов с конца предложения.
Если найден не пробел - то отсчитывается счетчик a
Если найден пробел - то выводятся символы правее пробела количеством а (тоесть длиной слова), после чего счет а обнуляется и перебор идет дальше.
В конце отдельным циклом выводится первое слово (до первого пробела).
В итоге выводятся слова в обратном порядке.
В программе есть ошибки. К примеру выводится два пробела вместо одного. Чтобы исправить - достаточно перед a++ добавить else.
Так же можно обойтись без последнего цикла, если модифицировать проверки:
if (s[i] == ' ' || i == 0)
for (k = i?i+1:i; k <= (i + a); k++)
cout << (i?" ":"")
последнее чтобы в конце не печатался лишний пробел
Похожие вопросы
- Задание по программированию c++, буду благодарен помощи
- Задание 4 по Теме Функции. Перегрузка Функций. Рекурсия. На языке программирования C++
- Задача по программированию C++
- Задача по работе со строками на языке программировании c++
- Задание по программированию c++
- Помогите с Заданием по программированию c++
- Программирование C++ ПРОШУ ПОМОЧЬ!
- Что такое #include <iostream>, std using namespace std В языке программирования C++?
- Контрольная по алгоритмизации и программированию! C++
- Язык программирования c++