Проверьте, начинается ли строка с другой строки: найти или сравнить?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проверьте, начинается ли строка с другой строки: найти или сравнить?

Сообщение Anonymous »

Если вы хотите узнать, начинается ли строка с другой, как бы вы сделали это в C ++/STL? В Java есть string.startSwith , Python также имеет string.startwith , STL не имеет прямого метода для него. Вместо этого есть std :: string :: find и std :: string :: compare . До сих пор я использовал оба метода, в основном в зависимости от моего текущего настроения: < /p>

Код: Выделить всё

if ( str1.compare( 0, str2.length(), str2 ) == 0 )
do_something();
if ( str1.find(str2) == 0 )
do_something();
< /code>

Конечно, вы также можете сделать str.substr (0, str2.length ()) == str2 < /code>, возможно, есть все еще некоторые способы достигнутия того же. Найдите 
немного большей, чем сравнить , но я видел, как больше людей рекомендуют сравнить , которые находят .

Но какой из них предпочитает ? Есть ли разница в производительности? Это зависит от реализации (GCC, VC ++ и т. Д.)?

Подробнее здесь: https://stackoverflow.com/questions/775 ... or-compare
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»