реклама на сайте
подробности

 
 
> Текстовая строка без нулевого байта, как избавиться от terminating null?
sonycman
сообщение Jun 21 2009, 11:48
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Компилятор RealView из комплекта Keil MDK3.70.

Хочется получить текстовую строку в юникоде без нулевого байта.
Строки вида L"Text" включают в себя нулевой байт.
Как от него избавиться?

ЗЫ: и вообще, интересно, как в Си получить строку без нуля на конце?
Конструкция вида 'Text' не прокатывает - компилер ругается на слишком много символов...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sensor_ua
сообщение Jun 21 2009, 15:07
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387



Цитата
Вообще не очень удобно в Си (и в Си++) со структурами, в которых данные могут иметь различную длину, не известную на момент декларирования структуры, но известную после присваивания ей значения.
Язык требует указания точного значения прямо во время декларирования...

Насчёт плюсов не скажу, но не был бы так категоричен. В Си действительно с этим сложновато. В C99 появились массивы переменной длины. Такой массив размещается в конце структуры. И с sizeof введены изменения насчёт рантайма.
Посмотрите, авось чего получится
ЗЫ. Если байт длины описывает длину дескриптора, то, ИМХО, это поле лишнее.


--------------------
aka Vit
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sonycman   Текстовая строка без нулевого байта   Jun 21 2009, 11:48
- - SM   static char tst[4] = "ABCD"; // и будет ...   Jun 21 2009, 11:56
|- - sonycman   Цитата(SM @ Jun 21 2009, 15:56) static ch...   Jun 21 2009, 12:00
|- - HARMHARM   const char a[4] = { 'A','B','C...   Jun 21 2009, 12:05
|- - sonycman   Цитата(HARMHARM @ Jun 21 2009, 16:05) con...   Jun 21 2009, 12:17
|- - prottoss   Цитата(sonycman @ Jun 21 2009, 20:17) Во ...   Jun 21 2009, 12:36
|- - SM   Цитата(sonycman @ Jun 21 2009, 16:17) Во ...   Jun 21 2009, 12:39
- - SM   Видимо из-за того, что C++, а не C. Я такое в MSVC...   Jun 21 2009, 12:28
- - sensor_ua   Цитатаmain.cpp... так C или C++? Не поверил, что ...   Jun 21 2009, 12:29
- - sonycman   Ну, у вас IAR, а у меня RV и С++... Интересно, поч...   Jun 21 2009, 12:33
|- - SM   Цитата(sonycman @ Jun 21 2009, 16:33) и С...   Jun 21 2009, 12:35
- - sonycman   В общем, юзаю пока конструкцию L"String text...   Jun 21 2009, 13:16
|- - SM   Цитата(sonycman @ Jun 21 2009, 17:16) В о...   Jun 21 2009, 13:17
|- - sonycman   Цитата(SM @ Jun 21 2009, 17:17) Это зачем...   Jun 21 2009, 13:30
- - sensor_ua   ЦитатаА у меня эти строки лежат внутри строкового ...   Jun 21 2009, 13:40
|- - sonycman   Цитата(sensor_ua @ Jun 21 2009, 17:40) Ес...   Jun 21 2009, 14:35
- - SM   Понятно Я, вообще, ассемблером заделал блок дескр...   Jun 21 2009, 15:46
|- - sonycman   Цитата(SM @ Jun 21 2009, 19:46) Понятно ...   Jun 21 2009, 16:09
- - sergeeff   Не проще ли написать функцию, которая в качестве п...   Jun 21 2009, 18:42
|- - sonycman   Цитата(sergeeff @ Jun 21 2009, 22:42) Не ...   Jun 21 2009, 19:37
|- - meister   Цитата(sergeeff @ Jun 21 2009, 22:42) нап...   Jun 22 2009, 07:11
|- - SM   Цитата(meister @ Jun 22 2009, 11:11) напи...   Jun 22 2009, 07:20
- - ReAl   А ещё COG - и не только для этого.   Jun 22 2009, 09:02


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 22:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016