![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 123
|
![]()
Не используя функции стандартной библиотеки Си для работы со строками, кроме указанных написать собственную функцию ,реализующую алгоритм. Дана строка содержащая слова разделённые пробелами. Удалить первое слово строки.
Код,сказали неправильный((( Код:
|
![]() |
![]() |
![]() |
#2 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
А что неправильно не сказали?
Ты запускал код? Видел что он делает? Этот код с заданием слабо связан, но даже если бы он был правильный, то ты же видишь, что он strlen вызывает, а у тебя сказано: Цитата:
Последний раз редактировалось rrrFer; 14.09.2014 в 07:10. |
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,609
|
![]() Код:
Кавычки для символов - '. На кавычке типа ` выдает ошибку: неизвестный символ 0x60.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
![]() |
![]() |
![]() |
#4 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
По заданию надо написать функцию, а не запихать все в main
![]() |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 123
|
![]() Цитата:
но за strlen он ничего не сказал,а вот что после цикла у него вызвало много вопросов. Я программу представлял так-мы проходим по всей строке циклом, а потом уже ищем первый с начала строки пробельный символ и следующее слово за ним и там устанавливаем наш курсов,ясное дело не через '\0' а как ещё можно? То есть он прошёл слово увидел пробел и там остановился.На словах это легко представил. |
|
![]() |
![]() |
![]() |
#6 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
challengerr первое что бросается в глаза. Выделили 100 char динамически.
А что дальше с этой памятью?
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
![]() |
![]() |
![]() |
#7 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
ПО ушам ты ездишь и препод это заметил.
Функцию ты где-то без изменений скопипастил - называется она ПервоеСлово и скорее всего она отрежет от строки как раз это слово. Цитата:
\0 - это конец строки, т.т.е. если у тебя была строка "мама мыла раму\0" - то твоя функция запишет "мама\0мыла раму\0", а что должно быть - я не знаю - напиши примеры, я ж сказал в первом посте. Отрежет, если ты перепишешь ее как-нибудь конечно. Сейчас она ваще ниче не делает: Код:
И естественно, str[i] не равен пробелу. Дальше ты увеличиваешь i и шпаришь уже не по своей строке, а по мусору в памяти, находишь среди мусора первый пробел и заменяешь его на \0. Мусором может оказаться что-то полезная и программа может сломаться (зависит от фазы луны). Даже не так. Код:
Последний раз редактировалось rrrFer; 14.09.2014 в 10:00. |
|
![]() |
![]() |
![]() |
#8 |
C/C++, Java
Участник клуба
Регистрация: 28.03.2012
Сообщений: 1,680
|
![]()
Согласен с rrrFer. Покажите свой код... Дальше видно будет.
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости" Сложность - враг простоты и удобства! |
![]() |
![]() |
![]() |
#9 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
![]()
что такое удалить первой слово то?
Если слово - это что-то между пробелами (судя по твоим "попыткам"), то удалить можно так (я пробелы заменил на точки, чтоб виднее было) "..asd..fgh" -> "fgh" или так: "..asd..fgh" --> "..fgh" или так: "..asd..fgh" --> "....fgh" (удаляется только само слово, а пробелы перед ним {если были} остаются) У челенджера ваще не обрабатывается случай, если в начале строки идет сразу пробел - видимо он как-то иначе видит удаление слов (не знаю как). Что программа должна сделать если в строке только пробелы? Что если на вход подана вообще пустая строка? |
![]() |
![]() |
![]() |
#10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Вот как я вижу решение:
Код:
find2 перестроит строку. Это с потолка, не проверял.
I'm learning to live...
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Борьба со строками: Дана строка, состоящая из слов, разделенных пробелами и заканчивающаяся точкой. Удалить в каждом слове... (C) | dykee | Помощь студентам | 1 | 18.03.2014 05:07 |
Дана строка. В строке удалить символ двоеточие и подсчитать количество удаленных символов.в делфи | _Алексей_ | Помощь студентам | 3 | 29.04.2012 15:37 |
Дана строка со словами, разделёнными пробелами, в конце - точка. Удалить слово с заданным номером (Паскаль ABC) | Margosham-k | Помощь студентам | 6 | 10.04.2012 12:11 |
Дана строка символов. Удалить из исходной строки все цифры. | Striker14 | Помощь студентам | 4 | 26.02.2009 15:50 |
Дана строка символов. Задача: удалить из строки все цифры. | Striker14 | Помощь студентам | 1 | 25.02.2009 20:23 |