g ++ ошибка: ‘stricmp’ не был объявлен в этом объеме (но хорошо для 'strcmp')

Я просто написал эту вспомогательную функцию. Поместите его в App_Code/JS.cshtml:

@using System.Web.Script.Serialization
@helper Encode(object obj)
{
    @(new HtmlString(new JavaScriptSerializer().Serialize(obj)));
}

Тогда в вашем примере вы можете сделать что-то вроде этого:

var title = @JS.Encode(Model.Title);

Обратите внимание, как я не помещаю кавычки вокруг него. Если заголовок уже содержит кавычки, он не будет взорваться. Кажется, тоже прекрасно справляются со словарями и анонимными объектами!

26
задан 23 November 2009 в 17:41
поделиться

3 ответа

Попробуйте strcasecmp () . Вот справочная страница для него. Он соответствует 4.4BSD и POSIX.1-2001.

35
ответ дан 28 November 2019 в 06:44
поделиться

Добавьте определение для перезаписи stricmp с помощью strcasecmp на платформах, которые вы ищете.

#ifdef _IPHONE <- your platform define here
#define stricmp strcasecmp
#define strnicmp strncasecmp
#endif

Тогда вы всегда можете просто использовать stricmp.

11
ответ дан Ryan Christensen 15 October 2019 в 07:42
поделиться

stricmp не является ни POSIX, ни ANSI , поэтому на самом деле не имеет значения, разрешен ли strcmp , если ваш компилятор или стандартная библиотека строго придерживаются в функции стандартной библиотеки POSIX или ANSI (как, вероятно, имеет место с пакетом GCC).

14
ответ дан 28 November 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: