Язык Си в примерах/Верхний регистр: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 45: Строка 45:
int main() {
int main() {
int length, i;
int length, i;
char[] string = "ThIs Is A sTrInG";
char string[] = "ThIs Is A sTrInG";
length = strlen(string);
length = strlen(string);
for (i = 0; i < length; i++) {
for (i = 0; i < length; i++) {

Версия от 13:00, 7 ноября 2006

Язык Си в примерах


  1. Компиляция программ
  2. Простейшая программа «Hello World»
  3. Учимся складывать
  4. Максимум
  5. Таблица умножения
  6. ASCII-коды символов
  7. Верхний регистр
  8. Скобочки
  9. Факториал
  10. Степень числа
  11. Треугольник Паскаля
  12. Корень уравнения
  13. Система счисления
  14. Сортировка
  15. Библиотека complex
  16. Сортировка на основе qsort
  17. RPN-калькулятор
  18. RPN-калькулятор на Bison
  19. Простая грамматика
  20. Задача «Расчёт сопротивления схемы»
  21. Простая реализация конечного автомата
  22. Использование аргументов командной строки
  23. Чтение и печать без использования stdio
  24. Декодирование звукозаписи в формате ADX
  25. Другие примеры

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

< Язык Си в Примерах

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

Обратите внимание на то, что с символами (переменными типа 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;
}

См. также