Перевод символов в верхний регистр
В следующей программе введенная пользователем строчка переводится в верхний регистр,
то есть маленькие буквы становятся заглавными.
Заглавные буквы и символы, не являющиеся латинскими буквами не меняются.
Обратите внимание на то, что с символами (переменными типа
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;
}