Раздел «Язык Си».UpperCase:

Перевод символов в верхний регистр

В следующей программе введенная пользователем строчка переводится в верхний регистр, то есть маленькие буквы становятся заглавными. Заглавные буквы и символы, не являющиеся латинскими буквами не меняются.

Обратите внимание на то, что с символами (переменными типа char) можно оперировать как с числами. В частности 'Z' -'A' есть число, равное разности ASCII кодов символов 'A' и 'Z', то есть 26 — число букв в латинском алфавите. Символы можно также сравнивать друг с другом при этом сравнива.тся соответствующие им ASCII коды.

#include <stdio.h>
#define N 100
int main()
{
   char a[N];
   int i;
   scanf ("%s", a);
   for(i = 0; a[i] != 0; i++)
   {
      if( a[i] <= 'z' && a[i] >= 'a')
      {
         a[i] += 'A' - 'a';
      }
   }
   printf ("%s", a);
   return 0;
}

При решении практических задач функцию перевода строчки в верхний регистр писать самому не надо. Это стандартная функция, которая есть в библиотеках различных языков программирования. В большинство скриптовых языках она просто встроена. В частности, в стандартной библиотеке string реализованы функции strlwr и strupr, которые переводят строчки в нижний и в верхний регистр. Соответствующие функции для преобразования одного символа tolower и toupper определены в библиотеке ctype.

Ниже приведена программа, которая использует функцию tolower библиотеки ctype и переводит строчку в нижний регистр.

#include <string.h>
#include <stdio.h>
#include <ctype.h>
int main()
{
   int length, i;
   char[] string = "ThIs Is A sTrInG";
   length = strlen(string);
   for (i = 0; i < length; i++)
   {
       string[i] = tolower (string[i]);
   }
   printf ("%s\n", string);
   return 0;
}