Login
unsigned char*
NEW 07.04.07 16:43
Народ, подскажите, плиз, как соединить две строки типа unsigned char. Раньше не задумывался над этим а теперь понадобилось.
http://denis-aristov.ucoz.com
NEW 07.04.07 18:13
in Antwort kashej 07.04.07 16:43
вообще-то unsigned char* это не строка - это zeiger (указатель) , который может применяться для указания начала строки
с связать две строки в простейшем варианте можно функцией strcat(unsigned char* ,unsigned char* ) которая возвращает указатель на начало получившейся строки unsigned char* (или 0 при ошибке)
с связать две строки в простейшем варианте можно функцией strcat(unsigned char* ,unsigned char* ) которая возвращает указатель на начало получившейся строки unsigned char* (или 0 при ошибке)
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 07.04.07 18:45
in Antwort gendy 07.04.07 18:13
такая функция мне известна, но она имеет другие параметры:
char *strcat(char *s1, const char * s2);
char *strcat(char *s1, const char * s2);
http://denis-aristov.ucoz.com
NEW 07.04.07 19:03
in Antwort kashej 07.04.07 18:45
вам шашечки или ехать?
эту функцию вполне можно применить с указанным типом переменной - в крайнем случае прид╦тся привести типы - хотя я сомневаюсь
const означает что значение переменной нельзя изменить (константа) - но нам это и неинтересно
unsigned означает что переменная не может принимать отрицательные значения (0-255) но так как мы работаем с указателем, а не с самой переменной
то это тоже неинтересно
эту функцию вполне можно применить с указанным типом переменной - в крайнем случае прид╦тся привести типы - хотя я сомневаюсь
const означает что значение переменной нельзя изменить (константа) - но нам это и неинтересно
unsigned означает что переменная не может принимать отрицательные значения (0-255) но так как мы работаем с указателем, а не с самой переменной
то это тоже неинтересно
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 07.04.07 19:29
in Antwort gendy 07.04.07 19:03
NEW 08.04.07 13:45
in Antwort Chipolino 08.04.07 09:53
Хамите, парниша! И нет, непонятно. Если С - то strcat сойдёт, если С++ - то есть более надёжные методы.
NEW 08.04.07 14:19
in Antwort vadim 08.04.07 13:45
Например ? Только без упаковки в классы , ок .
К автору топика . А почему собственно unsigned char* ,а не char* ?
К автору топика . А почему собственно unsigned char* ,а не char* ?
NEW 08.04.07 14:52
in Antwort Chipolino 08.04.07 14:19
Если это С++, то следовало использовать std::vector (ну или std::deque). Объяснять, как слить вместе два вектора надо?
NEW 08.04.07 16:09
in Antwort vadim 08.04.07 14:52
Конечно объясни , о мудрейший . ;-)
И насколько быстрее быстрее это будет работать по сравнению с strcat/strncat .
И насколько быстрее быстрее это будет работать по сравнению с strcat/strncat .
NEW 08.04.07 16:24
in Antwort Chipolino 08.04.07 16:09
мне нужно в любом случае использовать тип unsigned char, потому что он удобен для передачи сообщений по сети.
http://denis-aristov.ucoz.com
NEW 08.04.07 22:20
Не знаю чем ты занимаешься , но работать со строками как unsigned char* - плохая идея .
Хотя бы из-за соображений платформонезависемости.
in Antwort kashej 08.04.07 16:24
В ответ на:
мне нужно в любом случае использовать тип unsigned char, потому что он удобен для передачи сообщений по сети.
мне нужно в любом случае использовать тип unsigned char, потому что он удобен для передачи сообщений по сети.
Не знаю чем ты занимаешься , но работать со строками как unsigned char* - плохая идея .
Хотя бы из-за соображений платформонезависемости.
NEW 08.04.07 23:16
in Antwort Chipolino 08.04.07 22:20
Я пишу один протокол на прикладном уровне.
А что касается unsigned char... разве он зависит от платформы? Насколько я знаю, то он содержит 1 байт данных. Или я не прав?
А что касается unsigned char... разве он зависит от платформы? Насколько я знаю, то он содержит 1 байт данных. Или я не прав?
http://denis-aristov.ucoz.com
NEW 09.04.07 01:21
in Antwort Chipolino 08.04.07 16:09
Вопрос здесь совершенно не в скорости, скорость будет сравнимой, и разница абсолютно пренебрежимой. Суть в том, насколько то, или иное решение подвержено ошибкам. И вот здесь-то стандартный вектор в разы лучше.
NEW 09.04.07 10:31
char такого же размера если что :-)
Если ты работаешь именно с набором символов , то пользуйся char* .И да это зависит от платформы .
in Antwort kashej 08.04.07 23:16
В ответ на:
А что касается unsigned char... разве он зависит от платформы? Насколько я знаю, то он содержит 1 байт данных. Или я не прав?
А что касается unsigned char... разве он зависит от платформы? Насколько я знаю, то он содержит 1 байт данных. Или я не прав?
char такого же размера если что :-)
Если ты работаешь именно с набором символов , то пользуйся char* .И да это зависит от платформы .
09.04.07 10:35
Значит ты считаешь , что вызов конструктора и деструктора для каждой строки , для например 100000 строк , обойдётся бесплатно ?
И почему собственно вектор ? а не стринг .
ОО не панацея .
in Antwort vadim 09.04.07 01:21
В ответ на:
Вопрос здесь совершенно не в скорости, скорость будет сравнимой, и разница абсолютно пренебрежимой. Суть в том, насколько то, или иное решение подвержено ошибкам. И вот здесь-то стандартный вектор в разы лучше.
Вопрос здесь совершенно не в скорости, скорость будет сравнимой, и разница абсолютно пренебрежимой. Суть в том, насколько то, или иное решение подвержено ошибкам. И вот здесь-то стандартный вектор в разы лучше.
Значит ты считаешь , что вызов конструктора и деструктора для каждой строки , для например 100000 строк , обойдётся бесплатно ?
И почему собственно вектор ? а не стринг .
ОО не панацея .
NEW 09.04.07 11:28
in Antwort Chipolino 09.04.07 10:31
В битовые поля сообщений не содержат отрицательные значения, поэтому unsigned char удобней для кодирования данных.
Вот например, общий заголовок сообщения:
А по поводу размера char - еще ни разу не слышал, что он может быть еще чем-то кроме байта.
Вот например, общий заголовок сообщения:
В ответ на:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Flags | Message-Type | Message-Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: PCEP message common header
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | Flags | Message-Type | Message-Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 7: PCEP message common header
А по поводу размера char - еще ни разу не слышал, что он может быть еще чем-то кроме байта.
http://denis-aristov.ucoz.com
NEW 09.04.07 11:43
in Antwort kashej 08.04.07 16:24
потому что он удобен для передачи сообщений по сети.
------
Ну ка, ну ка - объясни, плс, чем удобнее, чем все другие типы?!!
Наилучшим из объяснений, которое мне доводилось слышать по этому поводу, было то, что не надо формировать отдельный пакет для передачи знака...
Товарищ, выдавший сие, переучивался с КОБОЛа, т.ч. ему простительно...
------
Ну ка, ну ка - объясни, плс, чем удобнее, чем все другие типы?!!
Наилучшим из объяснений, которое мне доводилось слышать по этому поводу, было то, что не надо формировать отдельный пакет для передачи знака...


NEW 09.04.07 11:46
in Antwort Chipolino 09.04.07 10:31
Если ты работаешь именно с набором символов , то пользуйся char* .И да это зависит от платформы .
------
Эээ... если не ошибаюсь, то в конечном варианте при оперировании с сокетами все одно все будет кастится к VOID*...
------
Эээ... если не ошибаюсь, то в конечном варианте при оперировании с сокетами все одно все будет кастится к VOID*...