В следующей программе введенный пользователем текст на латинице переводится в верхний регистр, то есть строчные буквы становятся заглавными. Все прочие коды — включая заглавные буквы и символы, не являющиеся латинскими буквами — не меняются. Обратите внимание на то, что с символами (переменными типа char) можно оперировать как с числами. В частности, 'Z' - 'A' есть число, равное разности кодов символов A и Z, то есть (при использовании кодовой таблицы ASCII) 25 — число букв в латинском алфавите минус 1.
#include <assert.h>
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
int
main ()
{
char *rl
= setlocale (LC_ALL, "");
assert (rl != 0);
wint_t c;
while ((c = getwchar ()) != WEOF) {
putwchar (towupper (c));
}
assert (! ferror (stdin));
return 0;
}