| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > Второй ноль на конце стринга |
| Автор: bass 24.6.2012, 13:13 | ||||
| Добрый день прошу прощения за ламерский вопрос но не люблю студию.... А прешлось проект перетаскивать именно на нее.... Так в проекте есть в нескольких местах чар с двумя нулями на конце..... Код Builder
В студии такая конструкция отказалась работать вот так будет, лень лезть отладчиком(это длл) если нет то как реализовать.
Заранее спасибо. |
| Автор: borisbn 24.6.2012, 14:36 | ||
| Немного сумбурно... но, кажется понятно. И в билдере и в студии можно записать так
|
| Автор: bass 24.6.2012, 16:16 | ||||
Надесь что += "\0" добавит в конце ноль.... |
| Автор: borisbn 24.6.2012, 17:02 | ||
нет. не добавит. т.к. это равносильно тому, что написать
|
| Автор: KaZepKa 24.6.2012, 20:23 |
| Разве класс string сам не ставит в конце строки \0 ? А тормознул, второй ноль надо... |
| Автор: bass 25.6.2012, 03:50 | ||||
Так я понял что данная конструкция работать не будет....... Если записать таким образом как было предложено выше то два нуля будут ..... А как добавить второй ноль в существующий стринг в студии..... |
| Автор: math64 25.6.2012, 07:30 | ||||||||
Это добавит три нуля (или только один - смотря как реализован конструктор String). Один ноль C/C++ в строковой константе и так добавляет. Если конструктор String выглядит примерно так:
то сколько нулей не добавляй в строковую константу, в результате окажется только один. Если есть такой конструктор:
то тужно использовать его. |
| Автор: borisbn 25.6.2012, 08:22 | ||
во-первых, чего-то я поспешил... согласен с math64 во-вторых, в студии нет класса String (именно в этом написании). Возможно есть C++ CLI, но это - уже не Си++. в-третьих, возможно придётся воспользоваться Си-строками
|
| Автор: 586 25.6.2012, 10:11 | ||||
Нулевой символ в std::string можно так можно добавить:
И кстати, в VCL тоже можно нулевой символ таким способом добавить, при этом строка после этого работает исправно:
|
| Автор: bass 25.6.2012, 10:36 | ||||||||||
Спасибо....... Полностью с тобой согласен что ввыше описанной конструкции будет три нуля...... Просто это не затрагивало вопрос ...... А вот за
Огромное спасибо..... В VCL я вот так делаю 100% работает....
А вот std::string опыта работы мало...... |
| Автор: 586 25.6.2012, 10:48 | ||
В какой конструкции? В моей? Откуда три нуля то??? |
| Автор: volatile 26.6.2012, 01:01 | ||||
Работает до поры до времени... http://docwiki.embarcadero.com/VCL/2010/en/System.AnsiStringBase.SetLength
|