Литералы и константы

Представление литералов и констнат типов.


std::string str1 = "йцукен" //  Строковые константы;
std::string str2 = "Очень длинный текст, который хотелось бы \
разместить в одной строке" //  Строковая константа с переносом;
std::string str3 = "трока" "с конкатенацией" "!!!"

'\xFC' Символьные константы;
2, 5, –18 десятичные константы;
076, –0237 восьмеричные константы;
0xf1, 0x4ea3 шестнадцатеричные константы;
1.2e-2, .85, 10., 1e-6f; Константы с плавающей точкой;

не печатные символы: '\xDD' где D - восемнадцатиричное число


int     int_var       = 321;
unsigned int uint_var = 321u; // или 321U;
char    char_var      = '\xFC';
char    line[]        = "йцукен";
long    long_var      = 65454l; // или 65454L;
short   short_var     = -32768;
float   float_var     = 123.123F;

const char *      = "Hello";
const char        = ' ';

При формировании строк процедурным образом:


const SIZE = 10;
char *str = new char[SIZE],
         *ptr = str;

// ПОМНИМ что нужно оставить 
// место для '\0' поэтому SIZE - 1!
for (int i = 0; i < SIZE - 1; i++) {
        *ptr++ = '+';
}

*ptr = '\0';    // НЕ ЗАБЫВАЕМ ОГРАНИЧИТЬ СТРОКИ !!!
...
delete[] str;

тип Диапазон
short int От -32 768 до 32 767
unsigned short int От 0 до 65 535
int От -2 147 483 648 до 2 147 483 647
unsigned int От 0 до 4 294 967 295
long int От -2 147 483 648 до 2 147 483 647
unsigned long int От 0 до 4 294 967 295
float 3.4Е+/-38 (семь цифр после запятой)
double 1,7Е+/-308 (15 цифр после запятой)
long double 1,7Е+/-308 (15 цифр после запятой)
char 256 символьных значений
bооl true или false

Для краткости тип short iпt можно записывать просто как short, а long int - как long

UNICODE символы:


#include <TCHAR.H>
// ...
TCHAR wstr = L"СТРОКА С РУССКИМИ СИМВОЛАМИ!!!";

"Сырая" строка


// ...
string rawStr = R"(...)"; // ( ) - часть определения строки !!!

"Сырая" строка - хороша для указания путей и паттернов регулярок:


// Здесь \b и \n - не рассматриваются как спец символы
string path = R"(D:\bored\nano\file.txt)"; 


#include <regexp>
// ...
regex pattern{ R"((\w{2}\s*\d{5}(?:-\d{4})?))" };