Выяснить, почему добавляется всего одна буква из трех в приведенном коде - 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++;}

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

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

  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
Похожие ответы