Изменение регистра символов

Для изменения регистра символа предназначены следующие функции:

  • toupper() и _toupper_l() — возвращают код символа в верхнем регистре. Если преобразования регистра не было, то код символа возвращается без изменений. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int toupper(int ch);
int _toupper_l(int ch, _locale_t locale);

Пример:

// #include <cstring>
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << (char)std::toupper('w') << std::endl; // W
std::cout << (char)std::toupper('W') << std::endl; // W
std::cout << (char)std::toupper((unsigned char)'б')
          << std::endl; // Б
char str[] = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
int len = (int)std::strlen(str);
for (int i = 0; i < len; ++i) {
   str[i] = (char)toupper((unsigned char)str[i]);
}
std::cout << str << std::endl;
// АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
  • tolower() и _tolower_l() — возвращают код символа в нижнем регистре. Если преобразования регистра не было, то код символа возвращается без изменений. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int tolower(int ch);
int _tolower_l(int ch, _locale_t locale);

Пример:

// #include <cstring>
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << (char)std::tolower('w') << std::endl; // w
std::cout << (char)std::tolower('W') << std::endl; // w
std::cout << (char)std::tolower((unsigned char)'Б')
          << std::endl; // б
char str[] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
int len = (int)std::strlen(str);
for (int i = 0; i < len; ++i) {
   str[i] = (char)tolower((unsigned char)str[i]);
}
std::cout << str << std::endl;
// абвгдеёжзийклмнопрстуфхцчшщъыьэюя
  • _strupr() — заменяет все буквы в C-строке str соответствующими прописными буквами. Функция возвращает указатель на строку str. Прототип функции:
#include <cstring> /* или #include <string.h> */
char *_strupr(char *str);

Пример:

std::setlocale(LC_ALL, "Russian_Russia.1251");
char str[] = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
_strupr(str);
std::cout << str << std::endl;
// АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ

Вместо функции _strupr() лучше использовать функцию _strupr_s(). Прототип функции:

#include <cstring> /* или #include <string.h> */
errno_t _strupr_s(char *str, size_t strSize);

В параметре strSize указывается размер строки. Функция возвращает значение 0, если операция успешно выполнена, или код ошибки. Пример:

std::setlocale(LC_ALL, "Russian_Russia.1251");
char str[40] = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
_strupr_s(str, 40);
std::cout << str << std::endl;
// АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
  • _strlwr() — заменяет все буквы в C-строке str соответствующими строчными буквами. Функция возвращает указатель на строку str. Прототип функции:
#include <cstring> /* или #include <string.h> */
char *_strlwr(char *str);

Пример:

std::setlocale(LC_ALL, "Russian_Russia.1251");
char str[] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
_strlwr(str);
std::cout << str << std::endl;
// абвгдеёжзийклмнопрстуфхцчшщъыьэюя

Вместо функции _strlwr() лучше использовать функцию _strlwr_s(). Прототип функции:

#include <cstring> /* или #include <string.h> */
errno_t _strlwr_s(char *str, size_t strSize);

В параметре strSize указывается размер строки. Функция возвращает значение 0, если операция успешно выполнена, или код ошибки. Пример:

std::setlocale(LC_ALL, "Russian_Russia.1251");
char str[40] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
_strlwr_s(str, 40);
std::cout << str << std::endl;
// абвгдеёжзийклмнопрстуфхцчшщъыьэюя

Учебник C++ (MinGW-W64)
Учебник C++ (MinGW-W64) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов