Проверка условия: являются ли оба символа пробелами - C (СИ)
Формулировка задачи:
Есть программа на С++
Переведите,пожалуйста,ее просто на Си
#include <algorithm> #include <iostream> #include <iterator> #include <string> using namespace std; // Проверка условия: являются ли оба символа пробелами bool BothAreSpaces(char c1, char c2) { return c1 == ' ' && c2 == ' '; } int main() { string s; // Читаем строку getline(cin, s); // Ищем первый непробел string::size_type pos1 = s.find_first_not_of(' '); // Ищем последний непробел string::size_type pos2 = s.find_last_not_of(' ') + 1; string s1; // Копируем часть s от pos1 до pos2 в s1, удаляя последовательно идущие символы, удовлетворяющие условию unique_copy(s.begin() + pos1, s.begin() + pos2, back_inserter(s1), BothAreSpaces); // Выводим результат cout « s1 « endl; }
Решение задачи: «Проверка условия: являются ли оба символа пробелами»
textual
Листинг программы
#include <stdio.h> #define GUESS_MAX_LINE_LENGTH 1024 int main(void) { char line[GUESS_MAX_LINE_LENGTH], ch; int index, state = 0; for (index = 0; (ch = getchar()) && ch != '\n' && ch != EOF; ) { if (!state && ch == ' ') { state = 1; line[index++] = ch; } else if (ch != ' ') { if (state) { state = 0; } line[index++] = ch; } } line[index] = '\0'; printf("%s\n", line); }
Объяснение кода листинга программы
В этом коде определен массив символов line
и переменная index
для отслеживания позиции ввода в строке. Переменная state
используется для отслеживания текущего состояния ввода. Изначально state
равно 0, что означает, что мы ищем начало строки. Когда мы находим пробел и state
все еще равно 0, мы переводим state
в 1, что означает, что мы ищем конец строки. Когда мы находим символ, который не является пробелом, мы обновляем state
на 0, чтобы начать следующую строку. Мы добавляем символы, которые мы находим, в line
, увеличивая index
на каждом шаге. Когда мы достигаем конца строки, мы добавляем символ новой строки в line
и выводим line
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д