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

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

кроки

Зображення з назвою Compare Two Strings in C Programming Step 1
1
Увімкніть бібліотеку рядків в вашу програму. Ця бібліотека містить багато корисних функцій, використовуваних при роботі з рядками, в тому числі одну, яка порівнює їх. Помістіть наступний код в верхню частину програми, з іншими включеними командами.
include lt;string.hgt;
  • Зображення з назвою Compare Two Strings in C Programming Step 2
    2
    Оголосіть рядкові змінні. Це будуть рядки, які ви будете порівнювати. Зверніть увагу, що рядки в C оголошені як масиви символів, не як особливий тип string.
    char string1[limit], string2[limit]-// Replace "limit" with the maximum length of the strings
  • 3


    Вирішіть, скільки символів ви хочете порівняти.
  • Чим більше ви порівнюєте, тим вище точність ви досягнете (Наприклад, якщо рядки були "Hell" і "Hello", І ви порівняли чотири символи, то вони будуть виглядати також).
  • Якщо порівнювати багато символів, порівняння буде повільніше.
  • Немає необхідності робити це число більше, ніж довжини рядків (немає символів для порівняння після їх завершення).
  • Зображення з назвою Compare Two Strings in C Programming Step 4
    4
    Створіть змінну, що містить кількість символів для порівняння.
    int compareLimit = 100-// Here, the limit is 100. However, you may change it to satisfy your needs.
  • Зображення з назвою Compare Two Strings in C Programming Step 5
    5
    Ініціалізуйте рядки. Ви можете привласнити значення вручну, вважати його з входу, вважати його з файлу ...
  • Зображення з назвою Compare Two Strings in C Programming Step 6


    6
    Порівняйте рядки. Порівняння виконується за допомогою функції strncmp (), а повертається тип є цілим числом - integer.
    int result = strncmp(string1, string2, compareLimit)-
  • 7
    Перевірте результат. Якщо він позитивний, перший рядок - більше. Якщо він негативний, друга - більше. Якщо він дорівнює 0, то вони рівні.
    if(result gt; 0)printf("string1 gt; string2")-else if(result lt; 0)printf("string2 gt; 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 don`t 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 (ЛОЖЬ).


    Увага, тільки СЬОГОДНІ!

    Увага, тільки СЬОГОДНІ!
    » » Як порівняти два рядки на мові програмування c