Программу С++ нужно переделать в С - C (СИ)
Формулировка задачи:
#include <iostream> #include <string> #include <cctype> int main() { std::string str ; std::getline ( std::cin , str ) ; for ( std::string::size_type i = 0 ; i < str.size() ; ++i ) { if ( std::ispunct ( str[i] ) && (i+1)<str.size() && !std::isspace(str[i+1]) ) { str.insert(++i," ") ; } } std::cout << "\n" << str << std::endl ; }
Решение задачи: «Программу С++ нужно переделать в С»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> enum constants { MAX_LEN = 1024 }; int main() { char line[MAX_LEN]; char result[MAX_LEN+MAX_LEN]; size_t i,j; fgets(line, MAX_LEN, stdin); for(i = 0, j = 0; line[i]; ++i, ++j) { result[j] = line[i]; if(ispunct(line[i]) && line[i + 1] && (!isspace(line[i + 1]))) { result[++j] = ' '; } } result[j] = 0; fputs(result, stdout); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами, строками и массивами.
- Объявление переменной
constants
типаenum
, которая содержит константуMAX_LEN
равную 1024. - Создание двух переменных типа
char
:line
иresult
.line
используется для хранения строки, которую вводит пользователь.result
используется для хранения результата обработки строки из пункта 4.
- Создание двух переменных типа
size_t
:i
иj
, которые используются в цикле.- Переменная
i
используется для индексации строкиline
. - Переменная
j
используется для индексации строкиresult
.
- Переменная
- Считывание строки от пользователя с помощью функции
fgets()
. - Начало цикла, который проходит по каждому символу строки
line
. - В каждой итерации цикла символ
line[i]
копируется в соответствующую позицию в строкеresult
. - Если текущий символ является знакам пунктуации и следующий символ не является пробелом, то в следующую позицию в строке
result
записывается пробел. - После окончания цикла в последнюю позицию строки
result
записывается нулевой символ, который обозначает конец строки. - Результат выводится на экран с помощью функции
fputs()
. - Программа завершается, возвращая 0 в качестве кода выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д