Вопрос об strlen

dsaf1

Активный
Автор темы
252
48
По причине, что я тупой, смогли бы объяснить что значит конструкция if(!strlen(inputtext) в паблике OnDialogResponse?
Функция strlen считает количество симоволов из inputtext, но для чего там ставят воскицательный знак, и как, и что, и зачем нам проверка на всё это?
Примеры использования:

Пример #1:
case 18777:
{
      if(!response) return Kick_Reason(playerid,0);
      if(!strlen(inputtext) || strlen(inputtext) < 6 || strlen(inputtext) > 7)
          return ShowPlayerDialog(playerid, 18777, DIALOG_STYLE_INPUT, "Система безопасности", "Система безопасности запрашивает ваш код Google Authenticator", "Далее", "Отмена");

      new
          test = GoogleAuthenticatorCode(PlayerInfo[playerid][pCode], gettime());

      if(strlen(inputtext) == test)
      {
             SendClientMessage(playerid,-1," Успешная авторизация");
             return 1;                 
      }
      else
      {
            Kick_R(playerid,0);
      }
      return 1;
}

Пример #2:
case 1:
{   if(!response) return true;
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Ввод дроби", "Введите необходимое число с плавающей точкой.", "Готово", "Закрыть");
    new Float:argument = floatstr(inputtext);
    printf("В диалоге 1 введено число %f", argument);
}