Форум программистов, компьютерный форум CyberForum.ru

Как преобразовать переменную string в массив char[]? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 287, средняя оценка - 4.63
nill
8 / 8 / 0
Регистрация: 16.08.2009
Сообщений: 417
03.02.2012, 13:42     Как преобразовать переменную string в массив char[]? #1
Есть переменная string и массив char как записать переменную типа string в такой массив ?

C++
1
2
String X="test";
char Mass[100];
Нужен максимально простой и короткий пример!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
03.02.2012, 17:24     Как преобразовать переменную string в массив char[]? #21
Цитата Сообщение от go Посмотреть сообщение
Функцию strncpy придумали не для этого.
"не для" чего? я так и не понял.
Цитата Сообщение от go Посмотреть сообщение
При правильной работе с функцией, нужно передавать в функцию значение len на единицу меньше размера буфера, а также самостоятельно устанавливать последний байт в 0
о том и речь. я лишь хотел сказать, что мемсет делает это и еще сверх этого. поэтому лучше нуль-терминировать строку.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.02.2012, 17:29     Как преобразовать переменную string в массив char[]? #22
Цитата Сообщение от retmas Посмотреть сообщение
поэтому лучше нуль-терминировать строку.
Каким образом? Вы сказали о увеличении буфера(о чем свидетельствует Ваш пример) Чего-либо подобного я не видел
C++
1
buf[sizeof buf - 1] = '\0';
Добавлено через 1 минуту
Цитата Сообщение от silent_1991 Посмотреть сообщение
так почему бы не установить нуль-терминатор в заранее известную позицию,
Дело вкуса, но делать что-либо надо!
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
03.02.2012, 17:30     Как преобразовать переменную string в массив char[]? #23
Цитата Сообщение от go Посмотреть сообщение
Дело вкуса
А также производительности, если речь о достаточно большом буфере.
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
03.02.2012, 17:33     Как преобразовать переменную string в массив char[]? #24
мой пример свидетельствует не об увеличении буфера, а об
Цитата Сообщение от diagon Посмотреть сообщение
Если меньше - оставшееся место просто забьется нулями.
Цитата Сообщение от go Посмотреть сообщение
Чего-либо подобного я не видел
потому что
Цитата Сообщение от diagon Посмотреть сообщение
Если меньше - оставшееся место просто забьется нулями.
и я говорил
Цитата Сообщение от retmas Посмотреть сообщение
записываем number элементов. вот вам и место куда его пихать
т.е. buf[number] = 0; а то, что number меньше sizeof buf... уж не думал, что об этом надо писать
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
03.02.2012, 17:37     Как преобразовать переменную string в массив char[]? #25
Цитата Сообщение от retmas Посмотреть сообщение
т.е. buf[number] = 0; а то, что number меньше sizeof buf... уж не думал, что об этом надо писать
Что такое number?
silent_1991
03.02.2012, 17:40
  #26
 Комментарий модератора 
Ладно, ребят, пооффтопили и хватит!
retmas
Жарю без масла
803 / 685 / 143
Регистрация: 13.01.2012
Сообщений: 1,580
03.02.2012, 17:42     Как преобразовать переменную string в массив char[]? #27
число записываемых символов
C++
1
strncpy(buf, source, number);
как то так. и если вы потребуете
C++
1
number = sizeof buf - 1;
. думал из контекста понятно...
Цитата Сообщение от silent_1991 Посмотреть сообщение
Ладно, ребят, пооффтопили и хватит!
не заметил. удаляюсь из топика
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2015, 22:42     Как преобразовать переменную string в массив char[]?
Еще ссылки по теме:

C++ Как преобразовать string в char*?
C++ Как двумерный массив char заменить на string?
C++ Как преобразовать строку char в массив int?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ua3yvs
0 / 0 / 0
Регистрация: 27.03.2015
Сообщений: 4
13.04.2015, 22:42     Как преобразовать переменную string в массив char[]? #28
C++
1
2
3
4
5
6
7
8
AnsiString X = "test";
int length = X.Length(); //лучше длинну строки чем sizeof(Mass)
char Mass[100] = "";
strcpy(Mass, X.c_str());
for(int i = 0; i <= length; i++ ){
 Mass[i]......
 
}
Yandex
Объявления
13.04.2015, 22:42     Как преобразовать переменную string в массив char[]?
Ответ Создать тему
Опции темы

Текущее время: 07:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru