Чтобы преобразовать все символы верхнего регистра в нижний регистр в строке C, вы можете использовать несколько методов. Вот несколько подходов:
- Использование стандартной библиотеки. Вы можете использовать функцию стандартной библиотеки 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]);
}
}
- Манипуляции с 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');
}
}
}
- Битовая манипуляция. Другой подход заключается в использовании побитовых операций для преобразования символов верхнего регистра в нижний регистр. Этот метод работает, поскольку существует фиксированная разница 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;
}
}
}