2011-01-04 3 views
1

Если у меня есть две части символьных данных, какой лучший способ их сравнить (проверка равенства с ==)? То есть, какой тип лучше всего подходит для такого сравнения? Строка const char *, строка?сравнение строк C++

Большого спасибо

ответ

15

Если ваша цель состоит в том, чтобы просто сравнивать строки на равенство, то это на самом деле не имеет значения, используете ли вы нулевые байты или какой-либо строка контейнер, как std::string.

Вы можете использовать std::strcmp, чтобы сравнить две строки с нулевым символом так же легко, как вы можете использовать operator== для сравнения двух объектов std::string. Перегруженный оператор делает код более чистым и легче читается в большинстве случаев.

Конечно, поскольку вы программируете на C++, вы должны использовать std::string или какой-либо другой контейнер строк и не использовать необработанные данные с нулевым завершением, где это возможно.

+2

+1 за последнее предложение, особенно для «по возможности». –

Смежные вопросы