Як порівняти два рядки на мові програмування C

Рядок, який менше, лексикографічно менше (вона починається з букв, які попереду початкових букв іншого рядка в словнику).

Кроки

  1. Як порівняти два рядки на мові програмування C

    1

    Увімкніть бібліотеку рядків у вашу програму. Ця бібліотека містить багато корисних функцій, використовуваних при роботі з рядками, у тому числі одну, яка порівнює їх. Помістіть наступний код у верхню частину програми, з іншими включеними командами.

    include <</span>string.h

  2. Як порівняти два рядки на мові програмування C

    2

    Оголосіть рядкові змінні. Це будуть рядки, які ви будете порівнювати. Зверніть увагу, що рядки в C оголошені як масиви символів, не як особливий тип string.

    char string1[limit], string2[limit];// Replace "limit" with the maximum length of the strings

  3. 3

    Вирішіть, скільки символів ви хочете порівняти.



    • Чим більше ви порівнюєте, тим вище точність ви досягнете (Наприклад, якщо рядки були "Hell" і "Hello", і ви порівняли чотири символи, то вони будуть виглядати також).
    • Якщо порівнювати багато символів, порівняння буде повільніше.
    • Немає необхідності робити це число більше, ніж довжини рядків (немає символів для порівняння після їх завершення).

  4. Як порівняти два рядки на мові програмування C

    4

    Створіть змінну, що містить кількість символів для порівняння.

    int compareLimit = 100;// Here, the limit is 100. However, you may change it to satisfy your needs.



  5. Як порівняти два рядки на мові програмування C

    5

    Ініціалізуйте рядка. Ви можете присвоїти значення вручну, вважати його з входу, вважати його з файлу ...

  6. Як порівняти два рядки на мові програмування C

    6

    Порівняйте рядка. Порівняння виконується за допомогою функції strncmp (), а повертається тип є цілим числом - integer.

    int result = strncmp(string1, string2, compareLimit);

  7. 7

    Перевірте результат. Якщо він позитивний, перший рядок - більше. Якщо він негативний, друга - більше. Якщо він дорівнює 0, то вони рівні.

    if(result  0)printf("String1> string2");else if(result <</span> 0)printf("String2> string1");elseprintf("String1 == string2");


Приклад коду

Програма, яка відповідає на прості питання («Як тебе звати?", "Як справи?", "Що ви думаєте про WikiHow?")

#include #include int main(){printf("Hello! Ask me a question! N");while(1){char str[100];scanf("% S",str);int res = strncmp(str, "What is your name?", 100);if(res == 0)printf("I`m a program, I do not have a name! N");res = strncmp(str, "How are you?", 100);if(res == 0)printf("Fine. N");res = strncmp(str, "What do you think of wikiHow?", 100);if(res == 0)printf("It`s great!");}}

Поради

  • Ця функція може бути використана в утвердженні "if".
  • Параметр compareLimit вказує strncmpмаксімальное кількість символів для вивчення. Використання strncmp замість оригінального strcmp (також як інші strn * процедури в порівнянні з їх str * доповненнями) є одним з багатьох способів, за допомогою якого програми C можна зробити більш стабільними і безпечними.

Попередження

  • Пам`ятайте, що значення дорівнює 0 у випадку, якщо рядки збігаються. Це може збити вас з пантелику, тому що 0 є також значенням FALSE (ЛОЖЬ).