![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 05.12.2012
Сообщений: 2
|
![]()
условие задачи. в строке заменить все числа на введенное с клавиатуры.
вот мой код #include<iostream> using namespace std; void main() { char *s=new char[100], *s1=new char[100]; char *cnum=new char[6]; cin.getline(s,100); cin.getline(cnum,6); int i,j,m; i=j=0; while(s[i]) { while(!isdigit(s[i])) s1[j++]=s[i++]; while(isdigit(s[i])) ++i; m=0; while(cnum[m]) s1[j++]=cnum[m++]; } s1[j]=0; cout<<s1; } в общем то и вся беда что он не работает. просто вылетает. ситуация немножко изменяется к лучшему если в while написать не isdigit, а s[i]>='0' && s[i]<='9', тогда на консоль выводится правильный вариант строки всегда, но в некоторых случаях программа потом закрывается |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
![]()
нету проверки выхода за границу массива
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 05.12.2012
Сообщений: 2
|
![]()
так вроде и не выходит за границу.
а как эту проверку сюда записать грамотно? |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
![]()
Компьютер "вроде" не понимает. Чем и хорош, на самом деле)
Computers are like Old Testament gods; lots of rules and no mercy. © Один вариант: Код:
Код:
В общем, в справке сказано, что результат вполне может и не терминироваться нулевым символом. Так же проверьте и все прочие циклы на невыход за границы. Иначе - ошибка доступа за границы выделенного блока памяти и вылет. И последнее замечание, по поводу понимания задания: число !=цифра. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Замена символа в строке! | Leximus | Общие вопросы Delphi | 2 | 12.12.2011 13:13 |
Замена слов в строке | lpofigistl | Общие вопросы C/C++ | 1 | 16.05.2010 20:38 |
замена символов в строке | euhenia | Помощь студентам | 3 | 30.11.2009 20:59 |
ассемблер, замена символа в строке | tiger | Помощь студентам | 3 | 05.11.2009 15:25 |
замена элементов в строке | _llllllllll_ | Помощь студентам | 4 | 18.10.2009 10:01 |