PDA

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


ANZR
27.06.2021, 03:03
У меня есть массив

const char* message_arg[2]

Мне нужно проверить, пустой ли message_arg[1]

kin4stat
27.06.2021, 03:10
У меня есть массив
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
27.06.2021, 03:13
Код:






if (message_arg[1] != nullptr && std::string_view{ message_arg[1] } != "")





Что подключить надо, для работы string_view

Ругается, что std не имеет такого члена

ANZR
27.06.2021, 03:20
Код:






if (message_arg[1] != nullptr && std::string_view{ message_arg[1] } != "")




UPD: C++17 не забудь поставить и инклуд string_view


Подключил я это либу, но даже так пахать не может

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

Есть у меня массив const char* users[17];

И я хочу проходить по всем элементам и отображать их, если они есть

Но когда я использую данную часть кода, игра просто крашится

с__:





[CODE]
for
(
int
i
=
0
;
i

Dark_Knight
27.06.2021, 11:59
А не проще ли const char заменить на std::string или std::string_view у которых есть метод empty для проверки, что объект не пустой?

traceattack
27.06.2021, 15:45
[QUOTE="ANZR"]

Подключил я это либу, но даже так пахать не может

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

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

с__:





[CODE]
for
(
int
i
=
0
;
i

ANZR
27.06.2021, 16:58
Как минимум у тебя проблема с циклом, у тебя массив 17 элементов, когда в цикле дойдет до 17, то ты уже не свой массив читаешь.


Я это заметил почти сразу же, т.к у меня еще были попытки запустить это

ANZR
27.06.2021, 17:16
А не проще ли const char заменить на std::string или std::string_view у которых есть метод empty для проверки, что объект не пустой?


Была идея, но чет на сонную голову решил не делать

Наверно его юзать и буду

Вот вопрос. Есть массив string

Как удалить какой-нить элемент массива

Dark_Knight
27.06.2021, 19:17
контейнеры юзай и у них есть метод erase

loganhackerdff
27.06.2021, 19:51
Не надо делать массив std::string_view это не так работает

loganhackerdff
27.06.2021, 20:02
Вам нужно std:: vector

А крашит скорее всего потому-что %s значит надо указать на массив char,а %c нужен char, замените %s на %c

Dark_Knight
28.06.2021, 17:46
Вам нужно std:: vector
А крашит скорее всего потому-что %s значит надо указать на массив char,а %c нужен char, замените %s на %c


Нихера там менять не надо. Выше ошибки уже указали. Вот тебе еще скрин, чтобы ты понимал, почему твой совет гавно.

kin4stat
28.06.2021, 17:51
Нихера там менять не надо. Выше ошибки уже указали. Вот тебе еще скрин, чтобы ты понимал, почему твой совет гавно.







А чтобы ты понимал, почему твой совет говно - ты компилировал в GCC, а не MSVC