На с++.
#include #include #include #include #define LANG 1 //Язык: 0 - английский; 1 - русскийsize_t kA = 0, ka = 0;int delta = (LANG) ? 'а' - 'А' : 'a' - 'A';void iter(char[], void(*)(char*), void(*)(char*));void incA(char* z = 0) { kA++; }void inca(char* z = 0) { ka++; }void changeA(char* ch);void changea(char* ch);int main() {setlocale(LC_ALL, "Russian");char str[] = "ПихАЙ СЮДА ИСХОднУЮ СТРОКУ СИмволов";iter(str, incA, inca);iter(str, changeA, changea);printf(str);return 0;}void iter(char str[], void(*trued)(char*), void(*falsed)(char*)) {for (size_t i = 0; i < strlen(str); ++i) { if (str[i] >= 'A' && str[i] <= 'Z' || str[i] >= 'А' && str[i] <= 'Я') trued(str+i); if (str[i] >= 'a' && str[i] <= 'z' || str[i] >= 'а' && str[i] <= 'я') falsed(str + i);}}void changeA(char* ch) {if (kA < ka) { *ch = *ch + delta;}}void changea(char* ch) {if (kA > ka) { *ch = *ch - delta;}}