ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½
Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹
ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Ρ‹
ДСйствия
 
C++
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° компилятором
АвтономныС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
Π―Π·Ρ‹ΠΊ
Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°
Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
ВрСбования ΠΊ имСнованию
ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ тСстирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (C++20)
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° языка
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΠΎΠ² (C++20)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° мСтапрограммирования (C++11)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° диагностики
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΠ±Ρ‰ΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° строк
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² (C++20)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° числСнных Π΄Π°Π½Π½Ρ‹Ρ…
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ
РСгулярныС выраТСния (C++11)
АтомарныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (C++11)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ (C++11)
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (C++17)
ВСхничСскиС спСцификации
Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ символов
Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
 
 

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° строк C++ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Ρ€Ρ‘Ρ… основных Ρ‚ΠΈΠΏΠΎΠ² строк:

  • std::basic_string - ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ класс, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для управлСния строками любого символьного Ρ‚ΠΈΠΏΠ°.
  • std::basic_string_view (C++17) - лСгковСсноС Π½Π΅-Π²Π»Π°Π΄Π΅ΡŽΡ‰Π΅Π΅ доступноС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния прСдставлСниС ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ строки.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Ρ‘ΠΌ - массивы символов, ΠΎΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом.

std::basic_string

Π¨Π°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ класс std::basic_string ΠΎΠ±ΠΎΠ±Ρ‰Π°Π΅Ρ‚ способы управлСния ΠΈ хранСния ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ символов. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ строк ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса ΠΈ связанных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² прСдусмотрСно нСсколько спСциализаций std::basic_string:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ <string>
Π’ΠΈΠΏ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
std::string std::basic_string<char>
std::wstring std::basic_string<wchar_t>
std::u8string (начиная с C++20) std::basic_string<char8_t>
std::u16string (начиная с C++11) std::basic_string<char16_t>
std::u32string (начиная с C++11) std::basic_string<char32_t>

std::basic_string_view

Π¨Π°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ класс std::basic_string_view прСдоставляСт лСгковСсный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΊ строкС ΠΈΠ»ΠΈ части строки с использованиСм интСрфСйса, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ³ΠΎ интСрфСйсу std::basic_string.

Для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² прСдусмотрСно нСсколько спСциализаций std::basic_string_view:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ <string>
Π’ΠΈΠΏ ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
std::string_view (начиная с C++17) std::basic_string_view<char>
std::wstring_view (начиная с C++17) std::basic_string_view<wchar_t>
std::u8string_view (начиная с C++20) std::basic_string_view<char8_t>
std::u16string_view (начиная с C++17) std::basic_string_view<char16_t>
std::u32string_view (начиная с C++17) std::basic_string_view<char32_t>
(начиная с C++17)

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Ρ‘ΠΌ

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Π΅ΠΌ, это массивы символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом. C++ прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для создания, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ измСнСния строк с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Ρ‘ΠΌ.

Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° строк с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Ρ‘ΠΌ:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

std::char_traits

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° строк Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт шаблон класса std::char_traits, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Ρ‚ΠΈΠΏΡ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для std::basic_string ΠΈ std::basic_string_view (начиная с C++17). ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ спСциализации:

<tbody> </tbody>
ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ <string>
template<> class char_traits<char>;
template<> class char_traits<wchar_t>;
template<> class char_traits<char8_t>;
(начиная с C++20)
template<> class char_traits<char16_t>;
(начиная с C++11)
template<> class char_traits<char32_t>;
(начиная с C++11)

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ классификация

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ прСобразования строк (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, std::wstring_convert ΠΈΠ»ΠΈ std::toupper), Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ символы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, std::isspace ΠΈΠ»ΠΈ std::isdigit).

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

ДокумСнтация C++ ΠΏΠΎ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ
ДокумСнтация C ΠΏΠΎ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° строк