Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [C]Решение задачи "2 Stringa в 1" |
Автор: dima6920 14.4.2010, 16:01 | ||
Привет всем! Помогите пожалуйста с задачкой-застрял на этом уже второй день. Суть задачи заключается: Есть 2 Стринга -first[10] и second[10] Данные из этих двух Стрингов нужно переместить в третий third[22] поочередно то есть,сначала из первого в третий а потом из второго в третий вместе с '\0' (NULL). Вот чего я наваял:
Заранее благодарен |
Автор: SaNioK 14.4.2010, 16:19 |
Странно... Задача так и стоит или ты что-то напутал? Дело в том что '\0' обозначает конец строки в char, т.е. два '\0' в одном char не может быть. Но пойдем от обратного, строка выводится до того как не будет найден '\0' = вывод даже если ты наколдуешь и поместишь два '\0' в одну строку то выведется только первая часть) Но как я уже говорил реализовать это невозможно. Но это все мои рассуждения - мб профи меня помидорами закидают. ![]() |
Автор: ИванМ 14.4.2010, 16:27 |
вообще-то есть функция strlen, которая сама определяет длину строки |
Автор: SaNioK 14.4.2010, 16:45 | ||
Да и для конкатенации строк также есть свои функции strcpy, strcat и т.д.) используется библиотека string.h Собственно
|
Автор: dima6920 14.4.2010, 17:32 | ||
Да,насчет функций я уже вкурсе Просят опять изобрести велосипед ![]() Добавлено через 14 минут и 25 секунд
Ты прав,из первого стринга нужны данные без '\0' а в продолжение этих данных добавляем второй стринг с данными + '\0' в конце Последний цикл for скорей всего неправильный у меня.... |
Автор: Dancer 14.4.2010, 17:49 | ||||
если нужно вкатить всё, включая \0
если нужно склеить:
|
Автор: ИванМ 14.4.2010, 18:47 | ||
Если нужен велосипед, то вот:
|
Автор: SaNioK 14.4.2010, 21:03 | ||
Собственно в gcc я немного менял и все отлично работало, можете уточнить почему не подойдет? |
Автор: ИванМ 14.4.2010, 21:17 |
SaNioK, теперь уже подойдут, когда автор сказал, что он ошибся. А так strcat прибавляет строку, убирая нулевой символ исходной. Поэтому если нужно нулевой символ оставить, то strcat не подходит. Я это имел ввиду. |
Автор: SaNioK 15.4.2010, 00:59 |
2 ИванМ А как тогда будет выведена строка? Ведь, насколько я помню, функции вывода - выводят строку до символа окончания строки '\0' - я прав? Т.е. это сугубо "лабораторная" ![]() |
Автор: ИванМ 15.4.2010, 01:13 | ||
Все правильно. Просто dima6920 сначала неправильно выразил задачу. Но, например, в WinApi (например, работа с диалогами) используется строка, в которой слова разделяются нулевым символом, а в конце стоит два нулевых символа. Она, правда, нигде не выводится, но факт в том, что такая строка имеет право на существование. И опять таки в WinApi существуют функции, которые могут выводить строку с нулевым символом посередине, там вместо нулевого символа на конце задается размер строки. Хотя не знаю, может, вы это все знаете. На всякий случай написал. |