Яка різниця між strcmp і strstr?
strcmp() Порівнює два рядки. strchr() Знайти символ у рядку. strstr() Знайти рядок у рядку.
Основна різниця між цими двома: strcmp порівнює обидва рядки, поки не з’явиться нульовий символ будь-якого рядка, тоді як strncmp порівнює щонайбільше num символів обох рядків. Але якщо num дорівнює довжині будь-якого рядка, strncmp поводиться подібно до strcmp.
Однак де strcmp() просто порівнює значення символів без знаку, strcoll() може застосовувати набір правил, що залежать від локалі, у порівнянні рядків. Значення категорії інформації про локаль LC_COLLATE визначає відповідний набір правил і може бути змінено функцією setlocale().
strcmp() : порівнює два рядки. strlen() : Отримує довжину рядка.
Підпрограма strcasecmp виконує посимвольне порівняння, подібне до підпрограми strcmp. однак, підпрограма strcasecmp не чутлива до регістру. Великі та малі літери зіставляються з тим самим значенням набору символів.
Не забувайте, що цифри можуть відрізнятися залежно від вхідних даних, компіляторів і стандартних реалізацій бібліотек, тому не вірте мені на слово і запустіть власні тести. Моя головна думка полягає в тому, що з тих пір strncmp є трохи безпечнішим, ніж strcmp продуктивність не повинна бути причиною того, що ви віддаєте перевагу strcmp над strncmp.