Проверьте, начинается ли строка с другой строки: найти или сравнить?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

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