void convert(char * t){
char s[255];
char s2[255];
strcpy(s,t);
strcpy(s2,t);
char win1[]="ижсйемцьыгузтшбюопнкдфщъвялхрэачИЖСЙЕМЦЬЫГУЗТШБЮОПНКДФЩЪВЯЛХРЭАЧ";
char koi1[]="ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮйцукенгшщзхъфывапролджэячсмитьбю";
for (char i=0; i<=strlen(t); i++){
for (char k=0; k<=strlen(koi1); k++){
if ((unsigned char)(s)==(unsigned char)(win1[k])){
s2=(unsigned char)(koi1[k]);
};
};
};
strcpy(t,s2);
};
Перегоняет CP->KOI... чтобы адаптировать под твои нужды просто поменяй массивы... делается просто... набиваешь в Винде русские буковки в текстовый файлик и открываешь ДОС-редактором... )))
Вроде так... Писалось давно без оптимизации и средств Qt ))) нужно было перегонять теги из инфо виндовых mp3-файлов в Линуксе... Так что не обессудь ))
ЗЫ: в место перебора для поиска индекса символа можно (а я думаю и лучше) использовать ассоциативный список (map)... )))