Заменить в строке обозначение символа с заданным кодом на сам символ - C (СИ)
Формулировка задачи:
Помогите, пожалуйста... Срочно надо лабу сдать.
Заменить в строке принятое в Си обозначение символа с заданным кодом (например, \101) на сам символ (в данном случае - А)
Решение задачи: «Заменить в строке обозначение символа с заданным кодом на сам символ»
textual
Листинг программы
#include <iostream> #include <stdlib.h> #include <conio.h> #include <stdio.h> #include <windows.h> void main() { int j=0; char a; char str[50],str1[50],c[10]="0123456789"; byte x; cout<<"Vvedi stroku "; cin>>str; for(int k=0;k<strlen(str);k++) { if(str[k]=='/') {int r=0; while(strchr(c,str[k+1])!=NULL) { r=r*10+str[k+1]-48;k++;} a=r; x=a; str1[j]=x;j++; k++; } str1[j]=str[k];j++; } cout<<"Vyvod stroki "<<str1; getch(); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с консолью и вводом-выводом данных.
- Объявление переменных:
j
- счетчик для заполнения массиваstr1
.a
- временная переменная для хранения числового значения символа.str
- строка, в которой нужно заменить обозначение символа на сам символ.str1
- массив, в который будет записываться измененная строка.c
- строка с обозначениями символов и их числовыми значениями.x
- переменная для хранения байтового значения символа.
- Ввод строки с помощью
cin
и вывод сообщения об этом. - Проверка каждого символа в строке на равенство обозначению символа '/'. Если это так, то начинается процесс замены.
- Внутри цикла, пока не будет найдено следующее вхождение обозначения символа, выполняется следующее:
- Переменная
r
инициализируется как 0. Она будет использоваться для хранения числового значения символа. - С помощью функции
strchr
и циклаwhile
ищется следующее вхождение обозначения символа в строкеc
. - Когда
strchr
возвращает неNULL
, это означает, что было найдено вхождение обозначения символа. - Числовое значение символа
str[k+1]
добавляется кr
, а затемk
увеличивается на 1, чтобы перейти к следующему символу в строке. - Значение
r
присваивается переменнойa
, а затемx
присваиваетсяa
, чтобы получить байтовое значение символа. - Символ
x
записывается в массивstr1
с помощью индексаj
, который увеличивается на 1 после каждой записи.
- Переменная
- Если символ не является обозначением символа, он просто записывается в массив
str1
с помощью индексаj
, который увеличивается на 1 после каждой записи. - Вывод измененной строки с помощью
cout
. - Вызов функции
getch
для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д