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

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

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

Добрый день, извините за глупый вопрос, я только две недели назад начала изучать С и не могу понять почему добавляется всего одна буква из трех например ввожу строку 22 + 33 а он показывает 22 a 33, а должен показывать 22 add 33, как исправить код что бы он правильно показывал?
Листинг программы
  1. char* change(char *str){
  2. char *k;
  3. int i = 0;
  4. char *a = "add";
  5. char *s = "sub";
  6. char *d = "div";
  7. char *m = "mul";
  8. while(*(str+i)!='\0'){
  9. if(*(str+i) == '+')
  10. { *(str+i) = *a; i++;}
  11. else if(*(str+i) == '-')
  12. { *(str+i) = *s; i++;}
  13. else if(*(str+i) == '/')
  14. { *(str+i) = *d; i++;}
  15. else if(*(str+i) == '*')
  16. { *(str+i) = *m; i++;}
  17. else {*(str+i)= *(str+i); i++;}}
  18. return str;
  19. }

Решение задачи: «Выяснить, почему добавляется всего одна буква из трех в приведенном коде»

textual
Листинг программы
  1. if(*(str+i) == '+')
  2.   { *(str+i) = *a; i++;}

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

В данном коде выполняется замена одной буквы на другую в строке, при условии что буква равна '+'. Замена происходит следующим образом:

  1. В условии проверяется, равно ли значение по адресу (str+i) букве '+'.
  2. Если условие выполняется, то значение по адресу (str+i) заменяется на значение переменной a.
  3. После замены, значение переменной i увеличивается на единицу. Список элементов кода:
  4. Условие: *(str+i) == '+'
  5. Значение переменной str: *(str+i)
  6. Значение переменной i: i
  7. Значение переменной a: *a

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


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

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

12   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы