Выяснить, почему добавляется всего одна буква из трех в приведенном коде - C (СИ)
Формулировка задачи:
Добрый день, извините за глупый вопрос, я только две недели назад начала изучать С и не могу понять почему добавляется всего одна буква из трех например ввожу строку 22 + 33 а он показывает 22 a 33, а должен показывать 22 add 33, как исправить код что бы он правильно показывал?
char* change(char *str){ char *k; int i = 0; char *a = "add"; char *s = "sub"; char *d = "div"; char *m = "mul"; while(*(str+i)!='\0'){ if(*(str+i) == '+') { *(str+i) = *a; i++;} else if(*(str+i) == '-') { *(str+i) = *s; i++;} else if(*(str+i) == '/') { *(str+i) = *d; i++;} else if(*(str+i) == '*') { *(str+i) = *m; i++;} else {*(str+i)= *(str+i); i++;}} return str; }
Решение задачи: «Выяснить, почему добавляется всего одна буква из трех в приведенном коде»
textual
Листинг программы
if(*(str+i) == '+') { *(str+i) = *a; i++;}
Объяснение кода листинга программы
В данном коде выполняется замена одной буквы на другую в строке, при условии что буква равна '+'. Замена происходит следующим образом:
- В условии проверяется, равно ли значение по адресу (str+i) букве '+'.
- Если условие выполняется, то значение по адресу (str+i) заменяется на значение переменной a.
- После замены, значение переменной i увеличивается на единицу. Список элементов кода:
- Условие: *(str+i) == '+'
- Значение переменной str: *(str+i)
- Значение переменной i: i
- Значение переменной a: *a
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д