Преобразовать строку, заменив запятыми все двоеточия - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите решить задачу!!!

Даны натуральное число n и символы S
1, ..., 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;
}

Объяснение кода листинга программы

  1. Объявлены две переменные: s типа char и n типа int.
  2. С помощью printf выводится приглашение для ввода строки.
  3. С помощью fgets вводится строка в буфер s.
  4. Выводится приглашение для ввода числа.
  5. С помощью scanf в переменную n считывается число.
  6. Переменная n уменьшается на единицу, чтобы корректно работать со строкой (см. комментарий).
  7. В цикле заменяются двоеточия на запятые.
  8. В цикле заменяются восклицательный знак на точку.
  9. Выводится значение переменной i (не понятно зачем, возможно, это номер строки).
  10. Выводится измененная строка.
  11. Функция main возвращает void.

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


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

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

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