19.02.2017, 16:11
Не очень хороший пример. Функция возвращает указатель на новосозданную строку, которую надо не забыть потом подчистить. Лучше изменять уже существующую строку:
Code:
void UpperToLower(char *str)
{
unsigned char *s = (unsigned char*)str;
size_t len = strlen(str);
for(size_t i = 0; i < len; i++)
{
if(s[i] > 64 && s[i] < 91) // буквы A-Z
s[i] += 32;
else if(s[i] > 191 && s[i] < 224) // буквы А-Я
s[i] += 32;
else if(s[i] == 168) // буква Ё
s[i] = 184;
}
}

