Як порівняти два рядки на мові програмування c
категорія Комп'ютер
Рядок, яка менше, лексикографічно менше (вона починається з букв, які попереду початкових букв іншого рядка в словнику).
кроки
1
Увімкніть бібліотеку рядків в вашу програму. Ця бібліотека містить багато корисних функцій, використовуваних при роботі з рядками, в тому числі одну, яка порівнює їх. Помістіть наступний код в верхню частину програми, з іншими включеними командами.
include lt;string.hgt;
2
Оголосіть рядкові змінні. Це будуть рядки, які ви будете порівнювати. Зверніть увагу, що рядки в C оголошені як масиви символів, не як особливий тип string.
char string1[limit], string2[limit]-// Replace "limit" with the maximum length of the strings
3
Вирішіть, скільки символів ви хочете порівняти.
4
Створіть змінну, що містить кількість символів для порівняння.
int compareLimit = 100-// Here, the limit is 100. However, you may change it to satisfy your needs.
5
Ініціалізуйте рядки. Ви можете привласнити значення вручну, вважати його з входу, вважати його з файлу ...
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 (ЛОЖЬ).