Как сравнить два символа без учета регистра в С? - PullRequest
2 голосов
/ 17 марта 2019

Я пытаюсь сравнить два конкретных символа в двух строках, но я хочу сделать сравнение без учета регистра . Как я могу это сделать?

сейчас я использую такой код:

if (str1[i]==str2[j]) printf("Equal");

но я хочу сделать это без учета регистра.

Заранее спасибо, что нашли время помочь!

Ответы [ 2 ]

5 голосов
/ 17 марта 2019

Вы можете использовать нижний регистр для обоих символов, например, используя функцию tolower:

if (tolower(str1[i])==tolower(str2[j])) printf("Equal");

Также имейте в виду: tolower не работает для многобайтового символа.Так что для этих символов вы должны использовать другую функцию

0 голосов
/ 17 марта 2019

Мы можем выполнить ваше требование, преобразовав оба символа в верхний или нижний регистр символов с помощью toupper () или tolower ().

Пример:

#include <stdio.h>
#include <ctype.h> //For tolower()

int main()
{
    char str1[]="Time", str2[]="time";
    /*
     * Just for an example i am comparing the first char
     * from 2 different strings.
     */
    if(tolower(str1[0]) ==tolower(str2[0])) {
        printf("Char's are equal\n");
    }
    else {
        printf("Char's are not equal");
    }
    return 0;
}

Выход:

Символы равны

...