Сравнение Строк
Существует несколько форм сравнения, но всегда вижу, что подходящие (===, strcmp ou strcasecmp
).
Среди этих фигур, представленных считаются самыми безопасными (по мнению некоторых сайтах в интернете), следующие сомнения:
- , Какой будет более подходящим для использования?
- в чем разница между ними?
- Существует также некоторая разница в производительности?
2 answers
Ты в виду различные подходы. Хорошо, что оба сравнивают две строки, которые возвращают (или говорят о том, strings) отличается.
===
возвращает только Логическое значение, true или false.
strcmp
возвращает отрицательный (<0
), если первая строка прошлой назначение расширения меньше, чем второй; положительный в противном случае;, и ноль, если они равны.
Может сказать ===
- это, чтобы узнать, являются ли они одинаковыми, strcmp
для сравнения строк, возвращающихся 3 возможность.
strcasecmp
- это разновидность strcmp
, но case-insensitive, игнорируя, если имеет большие буквы или маленькие.
Performance:
Только можно сравнить diferencas производительности в случае, если они оба имеют в коммун, то есть, когда, если хотите, чтобы сравнить, если две строки идентичны.
Таким образом, принимая во внимание, что strcmp
и strcasecmp
, нужны дополнительные проверки, чтобы узнать результат становится очевидным, что ===
- это быстрее. Или они strcmp проходит первый strcmp(strA, strB)
, а затем старше проверка равенства == 0
. Нашел, но некоторые цифры здесь, указывающие на производительность 3x быстрее с помощью ===
.
Заключение:
Если вы хотите знать, если две строки идентичны, должны использовать ===
.
Используйте ===, если вы хотите узнать, являются ли они идентичными.
, Если вы хотите узнать, какой из них больше, какая user strcmp.
" Не надейтесь только на этом посту, перейдите всегда далеко, как вы можете в знаниях.