Преобразовать строку, заменив запятыми все двоеточия - C (СИ)
Формулировка задачи:
Помогите решить задачу!!!
Даны натуральное число n и символы S1, ..., Sn (строка). Преобразовать строку, заменив запятыми все двоеточия, встречающиеся среди S1, ..., Sn/2, и заменив точками все восклицательные знаки, встречающиеся среди Sn/2, ..., Sn.
Решение задачи: «Преобразовать строку, заменив запятыми все двоеточия»
textual
Листинг программы
#include <stdio.h> int main () { char s[1024]; int n; printf("Line: "); fgets(s, 1024, stdin); printf("N: "); scanf("%d", &n); int i = 0; n=n-1; // что бы счет длины строки, который мы взяли, начинался "как бы не с нуля" //(т.e ввели мы значит 10 символов и получаем 0,1,2,3,4,...,8,9 всего 10,а если бы не было n=n-1, то 0,1,2...9,10 //всего 11 символов.) for ( i = 0; i<=n/2; ++i) if (s[i] == ':') s[i] = ','; for ( i = (n/2)+1; i <= n; ++i) if (s[i] == '!') s[i] = '.'; printf("%i\n",i); printf("%s\n", s); return; }
Объяснение кода листинга программы
- Объявлены две переменные:
s
типаchar
иn
типаint
. - С помощью
printf
выводится приглашение для ввода строки. - С помощью
fgets
вводится строка в буферs
. - Выводится приглашение для ввода числа.
- С помощью
scanf
в переменнуюn
считывается число. - Переменная
n
уменьшается на единицу, чтобы корректно работать со строкой (см. комментарий). - В цикле заменяются двоеточия на запятые.
- В цикле заменяются восклицательный знак на точку.
- Выводится значение переменной
i
(не понятно зачем, возможно, это номер строки). - Выводится измененная строка.
- Функция
main
возвращаетvoid
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д