Строка C: методы преобразования верхнего регистра в нижний регистр

Чтобы преобразовать все символы верхнего регистра в нижний регистр в строке C, вы можете использовать несколько методов. Вот несколько подходов:

  1. Использование стандартной библиотеки. Вы можете использовать функцию стандартной библиотеки C tolower()для преобразования отдельных символов в нижний регистр. Переберите каждый символ в строке и примените tolower()для его преобразования. Вот пример:
#include <ctype.h>
#include <string.h>
void convertToLowercase(char* str) {
    int length = strlen(str);
    for (int i = 0; i < length; i++) {
        str[i] = tolower(str[i]);
    }
}
  1. Манипуляции с ASCII. В ASCII символы верхнего регистра имеют последовательные целочисленные значения, которые больше, чем их аналоги в нижнем регистре. Вы можете воспользоваться этим свойством и напрямую манипулировать значениями ASCII для преобразования символов верхнего регистра в нижний регистр. Вот пример:
#include <string.h>
void convertToLowercase(char* str) {
    int length = strlen(str);
    for (int i = 0; i < length; i++) {
        if (str[i] >= 'A' && str[i] <= 'Z') {
            str[i] += ('a' - 'A');
        }
    }
}
  1. Битовая манипуляция. Другой подход заключается в использовании побитовых операций для преобразования символов верхнего регистра в нижний регистр. Этот метод работает, поскольку существует фиксированная разница 32 (или 0x20 в шестнадцатеричном формате) между значениями ASCII соответствующих символов верхнего и нижнего регистра. Вот пример:
#include <string.h>
void convertToLowercase(char* str) {
    int length = strlen(str);
    for (int i = 0; i < length; i++) {
        if (str[i] >= 'A' && str[i] <= 'Z') {
            str[i] |= 32;
        }
    }
}