[c++] Как проверить элемент массива const char* на пустоту

ANZR

Известный
Автор темы
168
104
У меня есть массив
const char* message_arg[2]
Мне нужно проверить, пустой ли message_arg[1]
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,709
У меня есть массив
const char* message_arg[2]
Мне нужно проверить, пустой ли message_arg[1]
Код:
if (message_arg[1] != nullptr && std::string_view{ message_arg[1] } != "")
UPD: C++17 не забудь поставить и инклуд string_view
 

ANZR

Известный
Автор темы
168
104
Код:
if (message_arg[1] != nullptr && std::string_view{ message_arg[1] } != "")
UPD: C++17 не забудь поставить и инклуд string_view
Подключил я это либу, но даже так пахать не может

Давай мб объясню, что мне надо

Есть у меня массив const char* users[17];
И я хочу проходить по всем элементам и отображать их, если они есть
Но когда я использую данную часть кода, игра просто крашится

с__:
            for (int i = 0; i <= 17; i++) {
                if (UserData.users[i] != nullptr) {
                    ImGui::Text(u8"%d. %s", i, UserData.users[i]);
                    ImGui::Spacing();
                }
            }
 

traceattack

Известный
218
119
Подключил я это либу, но даже так пахать не может

Давай мб объясню, что мне надо

Есть у меня массив const char* users[17];
И я хочу проходить по всем элементам и отображать их, если они есть
Но когда я использую данную часть кода, игра просто крашится

с__:
            for (int i = 0; i <= 17; i++) {
                if (UserData.users[i] != nullptr) {
                    ImGui::Text(u8"%d. %s", i, UserData.users[i]);
                    ImGui::Spacing();
                }
            }
Как минимум у тебя проблема с циклом, у тебя массив 17 элементов, когда в цикле дойдет до 17, то ты уже не свой массив читаешь.
 
  • Нравится
Реакции: Dark_Knight

ANZR

Известный
Автор темы
168
104
Как минимум у тебя проблема с циклом, у тебя массив 17 элементов, когда в цикле дойдет до 17, то ты уже не свой массив читаешь.
Я это заметил почти сразу же, т.к у меня еще были попытки запустить это
 

ANZR

Известный
Автор темы
168
104
А не проще ли const char заменить на std::string или std::string_view у которых есть метод empty для проверки, что объект не пустой?
Была идея, но чет на сонную голову решил не делать
Наверно его юзать и буду
Вот вопрос. Есть массив string
Как удалить какой-нить элемент массива
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Вам нужно std:: vector<std::string>
А крашит скорее всего потому-что %s значит надо указать на массив char,а %c нужен char, замените %s на %c
Нихера там менять не надо. Выше ошибки уже указали. Вот тебе еще скрин, чтобы ты понимал, почему твой совет гавно.
1624887965972.png
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,709
  • Нравится
Реакции: loganhackerdff