C/C++

Помогите с символами

Нужно, чтобы программа меняла буквы на заглавные у первых букв слова (русский и англ).
Не могу понять, как работать с кодировками(((( help
Заранее спасибо!!!!
Если у вас уже считан символ char, то бишь скорее всего под DOS кодировку видно.
Если же считывали символ wchar, то как бы и программа была другой.
Может это поможет cppstudio.com/post/1005/
Нурлан Оберкулов
Нурлан Оберкулов
81 242
Лучший ответ
Саша Гурьев функция toupper не работает для русских символов...
Я свою функцию написал которая и русский понимает и англ
char* tosmall, *tobig;

void create()
{
const char* str = "ёйцукенгшщзхъфывапролджэячсмитьбюqwertyuiopasdfghjklzxcvbnm";
const char* STR = "ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNM";
tobig = new char[256];
for (int i = 0; i < 256; i++)
tobig[i] = i;
for (int i = 0; i < 59; i++)
tobig[str[i] + 128] = STR[i] + 128;
tosmall = new char[256];
for (int i = 0; i < 256; i++)
tosmall[i] = i;
for (int i = 0; i < 59; i++)
tosmall[STR[i] + 128] = str[i] + 128;
}

void to_big(string& word)
{
for (char& c : word) c = tobig[c + 128] - 128;
}
void to_small(string& word)
{
for (char& c : word) c = tosmall[c + 128] - 128;
}
   Вячеслав, если Вы уже изучали поразрядные (или побитовые) операции, то используйте операцию « Поразрядное Исключающее „ИЛИ” с присваиванием ».

Знак операции: ^=

Предварительно следует вычислить константу, которая участвует справа от присваивания; её значение можно вычислить, например, так: 'А' ^ 'а'

Поразрядное Исключающее „ИЛИ” с присваиванием является универсальным переключателем между парой кодов.
Александр Заишников Посмотрите на кодовые таблицы. Разве не очевидно, что топология последовательностей заглавных букв и строчных букв одного и того же алфавита сходна? Разница только в том, что они занимают разные диапазоны, но внутри своего диапазона буквы располагаются одинаковым образом.