Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² языкС C++ (класс string)

Π’ языкС C++ для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π΅ΡΡ‚ΡŒ класс string, для использования ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» string.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌ значСния:

string S1, S2 = «Hello»;

Π‘Ρ‚Ρ€ΠΎΠΊΠ° S1 Π±ΡƒΠ΄Π΅Ρ‚ пустой, строка S2 Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 5 символов.

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² языкС C++ ΠΌΠΎΠ³ΡƒΡ‚

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ строк

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ явно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

НСявно конструктор вызываСтся ΠΏΡ€ΠΈ объявлСнии строки с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². НапримСр, Ρ‚Π°ΠΊ:

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ конструкторах для строк Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ здСсь.

Π’Π²ΠΎΠ΄-Π²Ρ‹Π²ΠΎΠ΄ строк

Π‘Ρ‚Ρ€ΠΎΠΊΠ° выводится Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ числовыС значСния:

cout >» для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° cin:

МоТно ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ строки Π΄ΠΎ появлСния символа ΠΊΠΎΠ½Ρ†Π° строки ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ getline. Π‘Π°ΠΌ символ ΠΊΠΎΠ½Ρ†Π° строки считываСтся ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π½ΠΎ ΠΊ строкС Π½Π΅ добавляСтся:

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ resize.

clear

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ clear.

empty

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ empty.

push_back

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ push_back.

append

ДобавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки нСсколько символов, Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки. Π˜ΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ способов Π²Ρ‹Π·ΠΎΠ²Π°.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ append.

erase

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ erase.

insert

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ insert.

substr

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ substr.

replace

ЗамСняСт Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ строки Π½Π° нСсколько Ρ€Π°Π²Π½Ρ‹Ρ… символов, Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ способам Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° append, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ двумя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π° числа: pos ΠΈ count. Из Π΄Π°Π½Π½ΠΎΠΉ строки удаляСтся count символов, начиная с символа pos, ΠΈ Π½Π° ΠΈΡ… мСсто Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ символы.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ replace.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ find.

rfind

Π˜Ρ‰Π΅Ρ‚ послСднСС Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ подстроки («ΠΏΡ€Π°Π²Ρ‹ΠΉ» поиск). Бпособы Π²Ρ‹Π·ΠΎΠ²Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ способам Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° find.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ rfind.

find_first_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ появлСниС любого ΠΈΠ· символов Π΄Π°Π½Π½ΠΎΠΉ строки str. ВозвращаСтся Π½ΠΎΠΌΠ΅Ρ€ этого символа ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ string::npos.

find_last_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС послСднСС появлСниС любого ΠΈΠ· символов Π΄Π°Π½Π½ΠΎΠΉ строки str. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ find_first_of.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ find_last_of.

find_first_not_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ появлСниС символа, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ символов строки str. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ find_first_of.

find_last_not_of

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС послСднСС появлСниС символа, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ символов строки str. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ find_first_of.

c_str

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся символы строки, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° char*. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ C-строку ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² функциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄ C-строку.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£Ρ€ΠΎΠΊ β„–202. Π”Π»ΠΈΠ½Π° ΠΈ Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ std::string

Обновл. 15 БСн 2021 |

ΠŸΡ€ΠΈ создании строки Π½Π΅ помСшало Π±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Ρ‘ Π΄Π»ΠΈΠ½Ρƒ ΠΈ Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ (ΠΈΠ»ΠΈ хотя Π±Ρ‹ Π·Π½Π°Ρ‚ΡŒ эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹).

Π”Π»ΠΈΠ½Π° std::string

Π”Π»ΠΈΠ½Π° строки β€” это количСство символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° содСрТит. Π•ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для опрСдСлСния Π΄Π»ΠΈΠ½Ρ‹ строки:

size_type string::length() const

size_type string::size() const

ОбС эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ количСство символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТит строка, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π½ΡƒΠ»ΡŒ-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€. НапримСр:

Π₯отя Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ length() для опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, содСрТит Π»ΠΈ строка ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ символы ΠΈΠ»ΠΈ Π½Π΅Ρ‚, эффСктивнСС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ empty():

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° функция, связанная с Π΄Π»ΠΈΠ½ΠΎΠΉ строки, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹, вСроятно, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ ΠΌΡ‹ всС Ρ€Π°Π²Π½ΠΎ Π΅Ρ‘ рассмотрим:

size_type string::max_size() const β€” эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ максимальноС количСство символов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ строка. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

ΠΠΌΠΊΠΎΡΡ‚ΡŒ std::string

ΠΠΌΠΊΠΎΡΡ‚ΡŒ строки β€” это ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм памяти, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ строкС для хранСния содСрТимого. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСряСтся Π² символах строки, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π½ΡƒΠ»ΡŒ-Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€. НапримСр, строка с Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ 8 ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 8 символов.

size_type string::capacity() const β€” эта функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство символов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ строка Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ пСрСраспрСдСлСния/пСрСвыдСлСния памяти.

Length: 10
Capacity: 15

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ эту ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ слСдуСт Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… IDE, Π° Π½Π΅ Π² Π²Π΅Π±-компиляторах.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ строки большС Π΅Ρ‘ Π΄Π»ΠΈΠ½Ρ‹! Π₯отя Π΄Π»ΠΈΠ½Π° нашСй строки Ρ€Π°Π²Π½Π° 10, памяти для Π½Π΅Ρ‘ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ Π°ΠΆ Π½Π° 15 символов! ΠŸΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ?

Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² строку большС символов, Ρ‡Π΅ΠΌ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ, строка Π±ΡƒΠ΄Π΅Ρ‚ пСрСраспрСдСлСна ΠΈ, соотвСтствСнно, Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ большС. НапримСр, Ссли строка ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ ΠΈ Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ Ρ€Π°Π²Π½ΡƒΡŽ 10, Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… символов Π² строку ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΅Ρ‘ ΠΏΠ΅Ρ€Π΅Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ. ДСлая Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒ строки большС Π΅Ρ‘ Π΄Π»ΠΈΠ½Ρ‹, ΠΌΡ‹ прСдоставляСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠ΅ пространство для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ строки (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… символов).

Но Π² пСрСраспрСдСлСнии Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ нСсколько нюансов:

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ рСсурсозатратно. Π‘Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° новая ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ строки копируСтся Π² Π½ΠΎΠ²ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Если строка большая, Ρ‚ΠΎ тратится ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. НаконСц, старая ΠΏΠ°ΠΌΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π°/освобоТдСна. Если Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΌΠ½ΠΎΠ³ΠΎ пСрСраспрСдСлСний, Ρ‚ΠΎ этот процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, всякий Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° строка пСрСраспрСдСляСтся, Π΅Ρ‘ содСрТимоС ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ адрСс памяти. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ссылки, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ строки становятся Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ!

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π½Π΅ всСгда строки ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ с Ρ‘ΠΌΠΊΠΎΡΡ‚ΡŒΡŽ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΉ Π΅Ρ‘ Π΄Π»ΠΈΠ½Ρƒ. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строк Π² CΠΈ

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ строки ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ прСдусмотрСно Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти для хранСния строки.

Под Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ строки Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ ячСйки ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, строка прСдставляСт собой массив символов. Для хранСния ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа строки отводится 1 Π±Π°ΠΉΡ‚.

ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ массива символов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ компилятору Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ памяти.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива символов, Ссли инициализация массива Π·Π°Π΄Π°Π½Π° ΠΏΡ€ΠΈ объявлСнии строковой константой:

Π’ этом случаС ΠΈΠΌΠ΅Π½Π° m2 ΠΈ m3 ΡΠ²Π»ΡΡŽΡ‚ΡΡ указатСлями Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Π΅ элСмСнты массивов:

ΠŸΡ€ΠΈ объявлСнии массива символов ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅Π³ΠΎ строковой константой ΠΌΠΎΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива, Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ строковой константы:

Π’ этом случаС объявлСниС массива ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ m4 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присвоСн адрСс массива:

Для указатСля ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ увСличСния (пСрСмСщСния Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ):

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк

Π’ этом случаС poet являСтся массивом, состоящим ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ строки. КаТдая строка символов прСдставляСт собой ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ массив, поэтому имССтся Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ указатСля Π½Π° массивы. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ poet[0] ссылаСтся Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку:
*poet[0] эквивалСнтно ‘П’,
*poet[l] эквивалСнтно ‘-‘.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ выполняСтся ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ для массивов.
ВСксты Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ… эквивалСнтны ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π² массивС. Запятая раздСляСт сосСдниС
ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ явно Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ строк символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ описаниС, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ‚Π°ΠΊΠΎΠΌΡƒ:

Π Π°Π·Π½ΠΈΡ†Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ такая Ρ„ΠΎΡ€ΠΌΠ° Π·Π°Π΄Π°Π΅Ρ‚ Β«ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΉΒ» массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС строки ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ.

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string

Π‘Π²ΠΎΠ±ΠΎΠ΄Π½Ρ‹ΠΉ массив

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со строками

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ языка Π‘ΠΈ, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π΄Π΅Π»ΠΎ со строками, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с указатСлями. Для размСщСния Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти строки символов Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

Для выдСлСния памяти ΠΏΠΎΠ΄ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ строки ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ динамичСского выдСлСния памяти. ΠŸΡ€ΠΈ этом Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ строки:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π° строк

Для Π²Π²ΠΎΠ΄Π° строки, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция

Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ пСрСдаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ осущСствляСтся Π²Π²ΠΎΠ΄. Ѐункция просит ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти строку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½Π° ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² массив, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΠ΅Ρ‚ Enter.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° строк

Для Π²Ρ‹Π²ΠΎΠ΄Π° строк ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ рассмотрСнной Ρ€Π°Π½Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ

ΠΈΠ»ΠΈ Π² сокращСнном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅

Для Π²Ρ‹Π²ΠΎΠ΄Π° строк Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ функция

которая ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ строку s ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ курсор Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ printf() ). Ѐункция puts() Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° строковых констант, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Ѐункция Π²Π²ΠΎΠ΄Π° символов

Для Π²Π²ΠΎΠ΄Π° символов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ функция

которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Указанная функция использовалась Π² рассмотрСнных Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… для Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠΊΠ½Π° консоли послС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΄ΠΎ наТатия клавиши.

Ѐункция Π²Ρ‹Π²ΠΎΠ΄Π° символов

Для Π²Ρ‹Π²ΠΎΠ΄Π° символов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ функция

которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ символа ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° экран символ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… символов Π²ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строкС.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния
Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ string.h

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ string.h ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

присоСдиняСт Π½Π΅ Π±ΠΎΠ»Π΅Π΅ n символов s2 ΠΊ s1, Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ строку символом ‘\0’, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ s1сравниваСт Π½Π΅ Π±ΠΎΠ»Π΅Π΅ n символов строк s1 ΠΈ s2, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, Ссли Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ n символов строк эквивалСнтнызаполняСт строку s символами, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ c, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку sзамСняСт ΠΏΠ΅Ρ€Π²Ρ‹Π΅ n символов строки s символами, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π΅Π½ c, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку s

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния
Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”Π»ΠΈΠ½Π° строки Π² Π‘++

Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· строки числа ΠΊΡ€Π°Ρ‚Π½Ρ‹Π΅ 2, Ссли Π΄Π»ΠΈΠ½Π° строки ΠΊΡ€Π°Ρ‚Π½Π° 2
#include #include #include using namespace std; int main(int.

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки stringЕсли Π΄Π»ΠΈΠ½Π° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки ΠΊΡ€Π°Ρ‚Π½Π° 4, ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ строки ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами со Π²Ρ‚ΠΎΡ€ΠΎΠΉ
Если Π΄Π»ΠΈΠ½Π° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки ΠΊΡ€Π°Ρ‚Π½Π° 4, ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ строки ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами со Π²Ρ‚ΠΎΡ€ΠΎΠΉ.

Π― ΠΏΠΎΠΊΠ° Π½Π΅ сам ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽ, Ρ‚.Π΅. ΠΊΠΎΠ»-Π²ΠΎ символов, ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½, Ссли состоит Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΈΠ· 4 ΠΈ Π½Π΅ Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ ΠΈΠ· 8 Ρ†ΠΈΡ„Ρ€.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 1 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
Извиняюсь, Π·Π°Π±Ρ‹Π» скобки.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 1 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
Π•Ρ‰Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ||

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· 1 ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
Π’ΠΎΡ‚:

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки stringСсли Π΄Π»ΠΈΠ½Π° строки S большС N, Ρ‚ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ символы, Ссли Π΄Π»ΠΈΠ½Π° строки S мСньшС N, Ρ‚ΠΎ Π² Π΅Π΅ Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ символы «.»
Π”Π°Π½Π° строка S ΠΈ число N. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку S Π² строку Π΄Π»ΠΈΠ½Ρ‹ N ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Ссли Π΄Π»ΠΈΠ½Π°.

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки stringΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки. Если Π΄Π»ΠΈΠ½Π° строки >6, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ строки Π² < >скобках.
ВвСсти с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ строку символов. ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ окончания Π²Π²ΠΎΠ΄Π° строки – Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши «Π’Π²ΠΎΠ΄».

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки stringΠ‘Ρ‚Ρ€ΠΎΠΊΠΈ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки, Ссли Π΄Π»ΠΈΠ½Π° ΠΊΡ€Π°Ρ‚Π½Π° 4, Ρ‚ΠΎ пСрвая Ρ‡Π°ΡΡ‚ΡŒ строки мСняСтся мСстами со Π²Ρ‚ΠΎΡ€ΠΎΠΉ
ВвСсти с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ строку символов.ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ окончания Π²Π²ΠΎΠ΄Π° строки-Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Π²Π²ΠΎΠ΄.ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.

Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки string. Π€ΠΎΡ‚ΠΎ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки stringЕсли Π΄Π»ΠΈΠ½Π° Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ строки нСчСтная, ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ символ, стоящий посСрСдинС строки
ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ пСрСвСсти с Π‘ΠΈ Π½Π° паскаль. using System; using System.Collections.Generic; using.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² языкС C

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Π² C, ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков программирования высокого уровня Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ, входящий Π² систСму Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² языка. Π’Π°ΠΊ ΠΊΠ°ΠΊ язык C ΠΏΠΎ своСму ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ являСтся языком систСмного программирования, Ρ‚ΠΎ строковый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² C ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ отсутствуСт, Π° Π² качСствС строк Π² Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ массивы символов.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ слоТилось Π΄Π²Π° прСдставлСния Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° строк:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ ANSI устанавливаСт, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² строкС являСтся Π΅Π΅ Π΄Π»ΠΈΠ½Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ сами символы строки. НапримСр, прСдставлСниС строки «ΠœΠΎΡ строка!» Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ:

11 ‘М’ ‘ΠΎ’ ‘я’ ‘ ‘ ‘с’ ‘Ρ‚’ ‘Ρ€’ ‘ΠΎ’ ‘ΠΊ’ ‘Π°’ ‘!’
Π’ строках с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Π΅ΠΌ, Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠ΅ символы строки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π° ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ строки являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ноль. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ рассмотрСнной Ρ€Π°Π½Π΅Π΅ строки Π² этом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

‘М’ ‘ΠΎ’ ‘я’ ‘ ‘ ‘с’ ‘Ρ‚’ ‘Ρ€’ ‘ΠΎ’ ‘ΠΊ’ ‘Π°’ ‘!’ 0

ОбъявлСниС строк Π² C

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ посрСдством массивов символов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ объявлСниС ASCII строки ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:

char имя[длина];
ОбъявлСниС строки Π² Π‘ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ синтаксис, Ρ‡Ρ‚ΠΎ ΠΈ объявлСниС ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ символьного массива. Π”Π»ΠΈΠ½Π° строки Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Π² стандартС C89 – константа, Π² стандартС C99 ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ). Π”Π»ΠΈΠ½Π° строки указываСтся с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа Π½Π° Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ нуля, поэтому максимальноС количСство Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… символов Π² строкС Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ мСньшС Π΅Π΅ Π΄Π»ΠΈΠ½Ρ‹. НапримСр, строка ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ максимально Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ символов, Ссли объявлСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
char str[21]; Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ строки Π² Π‘ осущСствляСтся ΠΏΡ€ΠΈ Π΅Π΅ объявлСнии, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:
char str[Π΄Π»ΠΈΠ½Π°] = строковый Π»ΠΈΡ‚Π΅Ρ€Π°Π»;

Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» – строка ASCII символов Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ объявлСния строк с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ:

char str1[20] = «Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: «, str2[20] = «»;

const char message[] = «Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ошибкС!»;

Π Π°Π±ΠΎΡ‚Π° со строками Π² Π‘

Π’Π°ΠΊ ΠΊΠ°ΠΊ строки Π½Π° языкС Π‘ ΡΠ²Π»ΡΡŽΡ‚ΡΡ массивами символов, Ρ‚ΠΎ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ символу строки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Π΅Π³ΠΎ индСксу. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ синтаксис обращСния ΠΊ элСмСнту массива, поэтому ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ Π² строкС ΠΈΠΌΠ΅Π΅Ρ‚ индСкс ноль. НапримСр, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² строкС str осущСствляСтся Π·Π°ΠΌΠ΅Π½Π° всСх символов ‘a’ Π½Π° символы ‘A’ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

ΠœΠ°ΡΡΠΈΠ²Ρ‹ строк Π² Π‘

ОбъявлСниС массивов строк Π² языкС Π‘ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы символов, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ синтаксис:
char имя[количСство][Π΄Π»ΠΈΠ½Π°];

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ указываСтся количСство строк Π² массивС, Π° Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ – максимальная (с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ нуля) Π΄Π»ΠΈΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки. НапримСр, объявлСниС массива ΠΈΠ· пяти строк максимальной Π΄Π»ΠΈΠ½ΠΎΠΉ 30 Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΡ… символов Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

Число строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ количСству строк Π² массивС. Если число строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² мСньшС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива, Ρ‚ΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ пустыми строками. Π”Π»ΠΈΠ½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ строкового Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ строго мСньшС значСния Π΄Π»ΠΈΠ½Ρ‹ строки (для записи Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ нуля).

ΠŸΡ€ΠΈ объявлСнии массивов строк с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ допускаСтся Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ количСство строк Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, количСство строк Π² массивС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ автоматичСски ΠΏΠΎ числу ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ².
НапримСр, массив ΠΈΠ· сСми строк:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π² Π‘

ВсС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ Π³Ρ€ΡƒΠΏΠΏΡ‹:

Π’Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ строк Π² Π‘

Для Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° строковой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° (printf ΠΈ scanf). Для этого Π² строкС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ ΠΈΠ»ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ спСцификатор Ρ‚ΠΈΠΏΠ° %s. НапримСр, Π²Π²ΠΎΠ΄ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ строковой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

char str[31] = «»;
printf(«Π’Π²Π΅Π΄ΠΈΡ‚Π΅ строку: «);
scanf(«%30s”,str);
printf(«Π’Ρ‹ Π²Π²Π΅Π»ΠΈ: %s”,str);

НСдостатком Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ scanf ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ строковых Π΄Π°Π½Π½Ρ‹Ρ… являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ символами раздСлитСлями Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ввСсти строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ нСсколько слов, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ табуляциями. НапримСр, Ссли Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²Π΅Π΄Π΅Ρ‚ строку: «Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слов», Ρ‚ΠΎ Π½Π° экранС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ «Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅».
Для Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° строк Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ stdio.h содСрТатся спСциализированныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ gets ΠΈ puts.

Ѐункция gets ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π²Π²ΠΎΠ΄Π° строк ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:
char * gets(char *buffer);

ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ gets катСгоричСски Π½Π΅ рСкомСндуСтся, Π²Π²ΠΈΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ строки, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ произвСсти ΠΊ ошибкам. ВмСсто Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция fgets с трСмя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

char * fgets(char * buffer, int size, FILE * stream);

Ѐункция puts ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π²Ρ‹Π²ΠΎΠ΄Π° строк ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:
int puts(const char *string);

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°: Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ строки с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ fgets ΠΈ puts Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

Помимо Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ stdio.h ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Π² строки. Ѐункция Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈΠ· строки ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π² строку ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ:

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строк

Π’ Π‘ для прСобразования строк, содСрТащих числа, Π² числСнныС значСния Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ stdlib.h
прСдусмотрСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:
double atof(const char *string); // ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки Π² число Ρ‚ΠΈΠΏΠ° double
int atoi(const char *string); // ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки Π² число Ρ‚ΠΈΠΏΠ° int
long int atol(const char *string); // ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки Π² число Ρ‚ΠΈΠΏΠ° long int
long long int atoll(const char *string); // ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки Π² число Ρ‚ΠΈΠΏΠ° long long int

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ прСдставлСниС вСщСствСнного числа Π² тСкстовой строкС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ:

ПослС символов E, e указываСтся порядок числа. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ прСдставлСниС Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π² тСкстовой строкС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ:

Помимо ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ stdlib.h доступны Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования строк Π² вСщСствСнныС числа:

АналогичныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ для прСобразования строк Π² цСлочислСнныС значСния:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ прСобразования (числСнныС значСния Π² строки) Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ stdlib.h ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ стандартом, ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚. Для прСобразования числСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² строковыС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ sprintf ΠΈ snprintf.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° строк

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ string.h ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дСйствий Π½Π°Π΄ строками.
Ѐункция вычислСния Π΄Π»ΠΈΠ½Ρ‹ строки:
size_t strlen(const char *string);

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ копирования строк:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ сравнСния строк:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ сравнСниС строк ΠΏΠΎ Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρƒ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚:

ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – Ссли string1 большС string2;
ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – Ссли string1 мСньшС string2;
Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – Ссли string1 совпадаСт с string2;

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ объСдинСния (ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ) строк:

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска символа Π² строкС:

Ѐункция поиска строки Π² строкС:
char * strstr(const char *str, const char *substr);

Ѐункция поиска ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π² строкС ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° символов:
size_t strcspn(const char *str, const char *charset);

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π² строкС Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΌΡƒ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ символов:
size_t strspn(const char *str, const char *charset);

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа Π² строкС ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° символов:
char * strpbrk(const char *str, const char *charset);

Ѐункция поиска ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π² строкС:
char * strtok(char * restrict string, const char * restrict charset);

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *