Каждую из малых латинских букв, предшествующих первому вхождения символа "*", заменить на цифру 3 - C (СИ)

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

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

Очередная задачка. Заранее благодарю за помощь.

Задачка №2.

Дан текст. Если в тексте нет символа "*", то оставить этот текст без изменения, иначе каждую из малых латинских букв, предшествующих первому вхождения символа "*", заменить на цифру 3. Есть паскалевский код... Но мне на

С

надо...
s: string;
  i,p: integer;
begin
  readln(s);
  p:=pos('*',s);
  if p>0 then
    for i:= 1 to p-1 do
      if s[i] in ['a'..'z'] then
        s[i] := '3';
  writeln(s);
end.

Решение задачи: «Каждую из малых латинских букв, предшествующих первому вхождения символа "*", заменить на цифру 3»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main(void)
{
    char buf[BUFSIZ], *asterisk, *pch;
    
    puts("Enter text:");
    
    if(fgets(buf, BUFSIZ, stdin) == NULL)
    {
        fputs("Input error\n", stdout);
        exit(1);
    }
 
    for(pch = buf, asterisk = strchr(buf, '*'); asterisk != NULL && pch < asterisk; ++pch)
        if(*pch >= 'a' && *pch <= 'z')
            *pch = '3';
    
    fputs(buf, stdout);
 
    exit(0);
}

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

  1. Подключение необходимых библиотек: iostream, cstring.
  2. Объявление переменных:
    • buf — массив символов, в который считывается текст;
    • asterisk — указатель на первый символ '*';
    • pch — указатель на текущий символ в массиве buf.
  3. Запрос на ввод текста.
  4. Проверка успешности ввода. Если ввод не удался, выводится сообщение об ошибке и программа завершается.
  5. Итерация по символам в массиве buf. Если текущий символ меньше или равен 'z', то есть является малой латинской буквой, он заменяется на '3'.
  6. Вывод измененного текста.
  7. Завершение программы.

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


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

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

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