11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
||||||
1 | ||||||
Как преобразовать переменную string в массив char[]?03.02.2012, 13:42. Показов 127798. Ответов 27
Метки нет (Все метки)
Есть переменная string и массив char как записать переменную типа string в такой массив ?
0
|
03.02.2012, 13:42 | |
Ответы с готовыми решениями:
27
Как преобразовать char* в string и вывести переменную string на экран? Преобразовать string в массив char Перевести массив char в переменную string Конвертировать массив string в переменную char, либо в переменную int |
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
03.02.2012, 13:54 [ТС] | 3 |
diagon,
неработает error C2664: strcpy: невозможно преобразовать параметр 1 из 'const char *' в 'char *'
0
|
11 / 11 / 2
Регистрация: 16.08.2009
Сообщений: 434
|
|
03.02.2012, 14:06 [ТС] | 5 |
diagon,
сработало! а как в конце вставить символ завершения строки \0 ? в массиве char
0
|
Higher
|
||||||
03.02.2012, 14:24 | 8 | |||||
Смешивать string и cstring вообще плохая затея. А с strcpy самый простой вариант, как и просил ТС.
А memset-то зачем? Тогда уж так
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
||||||
03.02.2012, 14:26 | 9 | |||||
К сожалению, так не нужно. Теряется смысл в использовании этой функции, и возникает возможность переполнения буфера, необходимо так
0
|
Higher
|
|
03.02.2012, 14:36 | 10 |
А в чем смысл заполнения всего буфера нулями?
От переполнения это вроде как не спасет. А если str.c_str() кончится раньше, чем sizeof(buf) - 1, то оставшееся место должно просто забиться нулями.
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
03.02.2012, 16:44 | 13 |
diagon, не совсем так...
http://liveworkspace.org/code/... bafc23c541 Раскомментируйте строчку и почувствуйте разницу http://liveworkspace.org/code/... 13a8ebcea2 Как вывод, вариант https://www.cyberforum.ru/post2454708.html лучше подходит
1
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
03.02.2012, 16:57 | 14 |
совсем так. в вашем примере, конец строки попадается одновременно с записью указанного количества символов. поэтому 0-ми не забивается(вернее, забивается 0 оставшихся элементов, что тоже самое). вот вам для размышления http://liveworkspace.org/code/... 20287fc633.
и еще раз прочитайте это
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
|
03.02.2012, 17:05 | 15 |
retmas, вопрос стоит о том стоит ли использовать memset. И как показал мой пример, без нее не обойтись.
Я этого не отрицаю. Читайте выше о чем весь спор. Ваш пример не чем не обусловлен. Я показал тот случай, где без memset не обойтись. Девять символов копируем в буфер размером 10 байт. Все верное, а результат ни тот. Почему я уже сказал.
0
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
03.02.2012, 17:07 | 16 |
в том случае не мемсет нужен, а простой '\0' в конец, потому что
0
|
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
|
|
03.02.2012, 17:11 | 18 |
как-как? записываем number элементов. вот вам и место куда его пихать. и вполне общий случай
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
03.02.2012, 17:24 | 20 |
go, так почему бы не установить нуль-терминатор в заранее известную позицию, что займёт одну инструкцию копирование, в отличие от memset, который заполнит нулями весь буфер?
0
|
03.02.2012, 17:24 | |
03.02.2012, 17:24 | |
Помогаю со студенческими работами здесь
20
Подскажите, пожалуйста, как преобразовать данные из excel в string или в char*, char perm [] в visual c++ Преобразовать массив символов char в строку String Преобразовать строку String в массив #define byte_t unsigned char и обратно есть массив char. есть строка string. как присвоить значению string-a значение char-a? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |