Каждую из малых латинских букв, предшествующих первому вхождения символа "*", заменить на цифру 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); }
Объяснение кода листинга программы
- Подключение необходимых библиотек: iostream, cstring.
- Объявление переменных:
- buf — массив символов, в который считывается текст;
- asterisk — указатель на первый символ '*';
- pch — указатель на текущий символ в массиве buf.
- Запрос на ввод текста.
- Проверка успешности ввода. Если ввод не удался, выводится сообщение об ошибке и программа завершается.
- Итерация по символам в массиве buf. Если текущий символ меньше или равен 'z', то есть является малой латинской буквой, он заменяется на '3'.
- Вывод измененного текста.
- Завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д