Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 16

Запись в static const char[]

08.08.2018, 19:13. Показов 6187. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть строка, содержащая некий текст.
C++
1
std::string ex_text = "<h1>TextTextText</h1>";
Также у меня есть переменная, которая должна хранить текст:
C++
1
static const char inline_html[];
Как передать текст из первой строки в char-овскую переменную?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2018, 19:13
Ответы с готовыми решениями:

Неправильная запись const char* в std::string
Привет, делаю Web-Парсер на плюсах и Python (на Питоне только Web пока что). В данный момент занимаюсь запросами. Решил пойти по-простому...

Чем отличаются объявления const char* и const* char
Прошу объяснить мне, чем отличаются объявления const char* и const* char и как объявить: указатель на константный массив символов, ...

Error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]"
Вроде все правильно а все равно не работает. Подскажите в чем ошибка #include &lt;iostream&gt; template&lt;typename T&gt; inline...

9
298 / 107 / 31
Регистрация: 12.03.2012
Сообщений: 449
08.08.2018, 19:47
Цитата Сообщение от PaxCore Посмотреть сообщение
static const char inline_html[];
Это пустой массив?
Наверное, имеется ввиду
C++
1
static const char * inline_html;
тогда
C++
1
inline_html = ex_test.c_str();
1
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
08.08.2018, 19:54
Это, конечно, сделать можно:
C++
1
2
3
std::string    ex_text = "<h1>TextTextText</h1>";
const char inline_html[]="                     ";
strcpy(const_cast<char*>(inline_html), ex_text.c_str());
Но неприлично.
1
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
08.08.2018, 19:57
Цитата Сообщение от PaxCore Посмотреть сообщение
Также у меня есть переменная, которая должна хранить текст
А зачем ей атрибут const ? Или "она когда-то константная, когда-то неконстантная" ?
0
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 16
08.08.2018, 20:01  [ТС]
Это то что нужно, только еще один вопрос.
Эта переменная объявлена перед главной функцией
C++
1
 static const char * inline_html;
Чтобы в главной функции изменить эту переменную, нужно будет убрать слово const, а потом сделать преобразование в (const char*), мне важно при этом сохранить (const char*)

Добавлено через 1 минуту
в одной из используемых мной библиотек аргумент функции принимает параметр типа (const char*)
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
08.08.2018, 20:05
PaxCore, ничего не мешает сделать так:

C++
1
2
static char set_inline_html[100];
static const char * inline_html = set_inline_html;
Добавлено через 1 минуту
Цитата Сообщение от PaxCore Посмотреть сообщение
в одной из используемых мной библиотек аргумент функции принимает параметр типа
из char* в const char* преобразование автоматическое, а вот из const char* в char* при небольшом везении приведёт к трудноуловимому вылету программы.
1
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 16
08.08.2018, 20:09  [ТС]
Спасибо всем, заработало
0
Велосипедист...
 Аватар для Mournful Max
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
09.08.2018, 04:18
Цитата Сообщение от zss Посмотреть сообщение
Это, конечно, сделать можно:
Если мне не изменяет память, то это UB. Такое практиковать не нужно )
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
09.08.2018, 10:11
C++
1
2
3
4
5
6
7
#include <iostream>
#include <string>
int main()
{
    std::string ex_text = "<h1>TextTextText</h1>";
    static const char * inline_html=ex_text.c_str();   
}
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
09.08.2018, 11:31
Лучший ответ Сообщение было отмечено MrGluck как решение

Решение

Цитата Сообщение от PaxCore Посмотреть сообщение
в одной из используемых мной библиотек аргумент функции принимает параметр типа (const char*)
string.c_str();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2018, 11:31
Помогаю со студенческими работами здесь

Как компилятор обрабатывает член класса static constexpr const char*
Привет! Наткнулся на непонятный момент class Foo { public: static constexpr const char* PTR = &quot;value&quot;; }; ...

char operator[](unsigned short offset) const; // что означает const?
Собстенно вопрос уже озвучен :).

Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *'
Unit1.cpp(59): E2034 Cannot convert 'char const' to 'const wchar_t *' Full parser context Unit1.cpp(55): parsing: void _fastcall...

Ошибка "значение типа "const char [81]" нельзя использовать для инициализации сущности типа "const unsigned char [61]"
Прошу помощи, так как раньше прога работала, сейчас решил вернуться и выдает ошибку: #pragma once #include...

Как понять следующую запись (signed char const ix(delta_x > 0) - (delta_x < 0)?
Всем привет! В принципе, название говорит само за себя. Хотелось бы понять, почему используется такой синтаксис и что он вообще...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru