Вопрос

Я играю с Пекс и одним из параметров, которые он передает в мой метод, является "\0".

Что это значит?Мое предположение - это пустая строка ("") на основе содержания моего метода.Однако, если это одно и то же, то почему бы просто не использовать "" вместо того , чтобы "\0"?

Кто-нибудь знает, что это такое?

Это было полезно?

Решение

'\0' - это "нулевой символ".Он используется для завершения строк в C и некоторых частях C ++.Pex выполняет тест, чтобы увидеть, как ваш код обрабатывает нулевой символ, вероятно, ищет Ядовитый Нулевой Байт уязвимость в системе безопасности.

Большинству C #-кода нечего бояться;однако, если вы передадите свою строку в неуправляемый код, у вас могут возникнуть проблемы.

Редактировать:

Просто чтобы быть откровенным...Pex передает строку, содержащую нулевой символ.Это не нулевая ссылка.

Другие советы

Это строка, содержащая символ '\0'.C # не обрабатывает это каким-либо особым образом - это просто символ юникода U + 0000.Если вы напишете:

int firstCodePoint = text[0];

тогда вы найдете firstCodePoint равно 0.

Это строка с нулевым символом.Более старые библиотеки строк — например, используемые в C или более старых библиотеках C ++ — использовали символ '\0' для обозначения конца строки.

Более новые среды, такие как .Net, используют другую систему, но существует большая история, связанная с окончанием строки на '\0', так что это распространенная ошибка.Тестирующие библиотеки, такие как Pex, будут использовать его, чтобы убедиться, что ваша программа обрабатывает его правильно.

Строка длиной 1, содержащая символ \u0000 (он же NUL).Этот персонаж специально не обрабатывается.

В C, который использует \0 для завершения строки, вы также выделяете строку длиной 1.В этом случае стандартные строковые функции будут сообщать длину 0, поскольку строка содержит \0, а также завершается им.Вы могли бы безопасно изменить str[0] или вставить в него один символ strncat.

Escape Sequence  
\0    
Character Name 
Null    
Unicode Encoding     
0x0000

Смотрите эту ссылку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top