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; } }