char символьный тип данных в С++ длиной 1 байт

Тип данных char предназначен для хранения одного символа и занимает 1 байт. Диапазон возможных значений (при преобразовании в целочисленное значение):
==-128 - 127== для char
==0 - 255== для unsigned char
Перевод кодов в символы
'0'..'9' – цифры в формате символов (ASCII-коды: 48-57)
'A'..'Z' – заглавные (прописные) латинские буквы (ASCII-коды: 65-90)
'a'..'z' – маленькие (строчные) латинские буквы (ASCII-коды: 97-122)


// Выводит значения нажатых клавиш как символы и целые числа
#include <iostream> // cout, endl
#include <conio.h>  // getch()
using namespace std;
int main(){
    char ch = 'a'; // Символьная переменная для хранения нажатой кнопки
    cout <<  "Press a key (Esc for exit)\n"; // Выводим значение а и приглашение к нажатию кнопки(ок)
    while(ch != 27){ // Выполнять пока не нажата кнопка Esc
        ch = getch(); // Считываем символ
        cout << string(1, ch) << " = " << (int)ch << endl; // Выводим значение ch как символа и как числа
    }
}

Преобразование char* в wchar_t* и наоборот

Для преобразования wchar_t* в char* используется функция wcstombs(char* dst, wchar_t* src, size_t string_length)

Для преобразования char* в wchar_t* используется функция mbstowcs(wchar_t* dst, char* src, size_t string_length)


// Преобразование широких строк (wchar_t*) в обычные (char*) и наоборот. С кирилицей могут быть проблемы.
#include <iostream>     // cout
#include <windows.h>    // MessageBoxW

int main(){
    wchar_t wch[] = L"Hello world!"; // Широкая строка
    char ch[256]; // Обычная строка. В нее будем копировать широкую строку
    
    size_t length_wch = wcslen(wch); //12 Длина широкой строки
    wcstombs(ch, wch, length_wch + 1); // Преобразование широкой строки в обычную ch = wch (Обязательно длина на 1 больше или не будет символа конца строки)
    
    size_t length_ch = strlen(ch); //12 Длина обычной строки
    mbstowcs(wch, ch, length_ch + 1); // Преобразование обычной строки в широкую wch = ch (Обязательно длина на 1 больше или не будет символа конца строки)
    
    MessageBoxW(0, wch, L"Заголовок", MB_OK); // Выводим широкую строку
    std::cout << ch; // Выводим обычную строку
}
2023-10-29



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

char символьный тип данных в С++ длиной 1 байт
char16_t символьный беззнаковый тип данных длиной 16 бит в С++11
char32_t символьный беззнаковый тип данных длиной 32 бит в С++11
char8_t символьный тип данных в С++20
Типы данных C++
double - тип данных для представления вещественных чисел двойной точности
enum перечисление С++
float C++ представление вещественных данных с одинарной точностью
int C++ целочисленный тип данных
Целочисленные типы С++ long и long long
short С++ целочисленный тип данных
signed C++ модификатор знакового целочисленного типа
typedef C++ создание псевдонимов для типов данных
typeid C++ определение типа данных
union C++ объединение переменных разных типов в общей памяти
unsigned С++ беззнаковые числа
void C++ для функций не возвращающих значений или задания пустого указателя
wchar_t С++ расширенный набор символов и строк