![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
dima6920 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 12.3.2008 Репутация: нет Всего: нет |
Привет всем!
Помогите пожалуйста с задачкой-застрял на этом уже второй день. Суть задачи заключается: Есть 2 Стринга -first[10] и second[10] Данные из этих двух Стрингов нужно переместить в третий third[22] поочередно то есть,сначала из первого в третий а потом из второго в третий вместе с '\0' (NULL). Вот чего я наваял:
Заранее благодарен |
|||
|
||||
SaNioK |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 28.12.2007 Где: Ukraine Репутация: нет Всего: нет |
Странно... Задача так и стоит или ты что-то напутал?
Дело в том что '\0' обозначает конец строки в char, т.е. два '\0' в одном char не может быть. Но пойдем от обратного, строка выводится до того как не будет найден '\0' = вывод даже если ты наколдуешь и поместишь два '\0' в одну строку то выведется только первая часть) Но как я уже говорил реализовать это невозможно. Но это все мои рассуждения - мб профи меня помидорами закидают. ![]() |
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
||||
|
||||
SaNioK |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 28.12.2007 Где: Ukraine Репутация: нет Всего: нет |
Да и для конкатенации строк также есть свои функции strcpy, strcat и т.д.)
используется библиотека string.h Собственно
|
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
||||
|
||||
dima6920 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 12.3.2008 Репутация: нет Всего: нет |
Да,насчет функций я уже вкурсе
Просят опять изобрести велосипед ![]() Добавлено через 14 минут и 25 секунд
Ты прав,из первого стринга нужны данные без '\0' а в продолжение этих данных добавляем второй стринг с данными + '\0' в конце Последний цикл for скорей всего неправильный у меня.... Это сообщение отредактировал(а) dima6920 - 14.4.2010, 17:44 |
|||
|
||||
Dancer |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 29.4.2005 Где: Nizhniy Novgorod Репутация: 4 Всего: 37 |
если нужно вкатить всё, включая \0
если нужно склеить:
-------------------- У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! ![]() |
||||
|
|||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
Если нужен велосипед, то вот:
|
|||
|
||||
SaNioK |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 28.12.2007 Где: Ukraine Репутация: нет Всего: нет |
Собственно в gcc я немного менял и все отлично работало, можете уточнить почему не подойдет? |
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
SaNioK, теперь уже подойдут, когда автор сказал, что он ошибся.
А так strcat прибавляет строку, убирая нулевой символ исходной. Поэтому если нужно нулевой символ оставить, то strcat не подходит. Я это имел ввиду. |
|||
|
||||
SaNioK |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 28.12.2007 Где: Ukraine Репутация: нет Всего: нет |
2 ИванМ
А как тогда будет выведена строка? Ведь, насколько я помню, функции вывода - выводят строку до символа окончания строки '\0' - я прав? Т.е. это сугубо "лабораторная" ![]() |
|||
|
||||
ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
Все правильно. Просто dima6920 сначала неправильно выразил задачу. Но, например, в WinApi (например, работа с диалогами) используется строка, в которой слова разделяются нулевым символом, а в конце стоит два нулевых символа. Она, правда, нигде не выводится, но факт в том, что такая строка имеет право на существование. И опять таки в WinApi существуют функции, которые могут выводить строку с нулевым символом посередине, там вместо нулевого символа на конце задается размер строки. Хотя не знаю, может, вы это все знаете. На всякий случай написал. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |