Проверка условия: являются ли оба символа пробелами - 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5
Похожие ответы