Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2014, 07:36   #1
Nata Golden rose
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 20
По умолчанию Подскажите пожалуйста почему добавляется всего одна буква из трех?

Добрый день, извините за глупый вопрос, я только две недели назад начала изучать С и не могу понять почему добавляется всего одна буква из трех например ввожу строку 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;
}
Nata Golden rose вне форума Ответить с цитированием
Старый 20.05.2014, 08:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не. Так не пойдет. Тебе нужно создать новую строку, и в нее вписать и исходную и то что дописывается.
Код:

char* change(char *str){
   char *k;
 
  int i = 0;
  char *res= new char[strlen(str)+3];
  char *a = "add"; 
  char *s = "sub";
  
for(int i=0,k=0;str[i];i++){
 
 if(str[i]=='+' || str[i]=='-'){
  if(str[i]=='+') for(int j=0;j<3;j++) res[k++]=a[j] else
   if(str[i]=='-') for(int j=0;j<3;j++) res[k++]=s[j] else
  ;
 } else {
 res[k++]=str[i];
 }

 res[k]=0;
 return res;
}
Это как идея. Ее допиливать надо. С потолка.

А вообще может стоит использовать класс string для удобства?

P.S. Чутку поправил код.
I'm learning to live...

Последний раз редактировалось Stilet; 20.05.2014 в 08:18.
Stilet вне форума Ответить с цитированием
Старый 22.05.2014, 05:29   #3
Nata Golden rose
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 20
По умолчанию

Спасибо большое я сделала по вашему образцу и все заработало
Nata Golden rose вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В файл добавляется только одна запись((( Алексей_2012 Общие вопросы Delphi 5 04.12.2013 01:41
всего одна ошибка!!! sergei99203 Общие вопросы C/C++ 12 11.03.2013 14:34
Вывод слов у которых в iой позиции одна и та же буква( язык C) NNAndr Помощь студентам 8 14.01.2013 09:14
Одна буква в одной ячейке Palantir Microsoft Office Excel 8 10.12.2009 19:09