Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования C++. ΠŸΡΡ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 123

Автор Π‘Ρ‚Π΅Π½Π»ΠΈ Π›ΠΈΠΏΠΏΠΌΠ°Π½

s.replace(11, 3, "Fifth"); // s == "Π‘++ Primer Fifth Ed."

Π’ этом Π²Ρ‹Π·ΠΎΠ²Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ символа, Π½ΠΎ вмСсто Π½ΠΈΡ… Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡΡ‚ΡŒ.


Π’Π°Π±Π»ΠΈΡ†Π° 9.13. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ измСнСния содСрТимого строки

s.insert(pos, args) Вставка символов, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ args, ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ pos. ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ pos ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π° индСксом ΠΈΠ»ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ. ВСрсии, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ индСкс, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ссылку Π½Π° строку s, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ вставлСнный символ s.erase(pos, len) УдаляСт len символов, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos. Если Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ len ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½, удаляСт символы ΠΎΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки s. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° строку s s.assign(args) ЗамСняСт символы строки s согласно Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρƒ args. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° строку s s.append(args) ДобавляСт Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ args ΠΊ строкС s. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° строку s s.replace(range, args) УдаляСт Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ range символов ΠΈΠ· строки s ΠΈ замСняСт ΠΈΡ… символами, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ args. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π°Π΄Π°Π½ Π»ΠΈΠ±ΠΎ индСксом ΠΈ Π΄Π»ΠΈΠ½ΠΎΠΉ, Π»ΠΈΠ±ΠΎ ΠΏΠ°Ρ€ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° строку s АргумСнты args ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ…: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ append() ΠΈ assign() ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ„ΠΎΡ€ΠΌΡ‹. Π‘Ρ‚Ρ€ΠΎΠΊΠ° str Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½Π° ΠΎΡ‚ s, Π° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ b ΠΈ Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ строкС s str Π‘Ρ‚Ρ€ΠΎΠΊΠ° str str, pos, len Π”ΠΎ len символов ΠΈΠ· строки str, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos cp, len Π”ΠΎ len символов ΠΈΠ· символьного массива, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ cp cp Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉΡΡ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом массив, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ cp n, c n ΠΊΠΎΠΏΠΈΠΉ символа с b, e Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ b ΠΈ Π΅ Бписок ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ РаздСляСмый запятыми список символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки АргумСнты args для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ replace() ΠΈ insert() зависят ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, использован Π»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ»ΠΈ позиция replace(pos,len,args) replace(b,Π΅,args) insert(pos,args) insert(iter,args) Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ args Π”Π° Π”Π° Π”Π° НСт str Π”Π° НСт Π”Π° НСт str, pos, len Π”Π° Π”Π° Π”Π° НСт cp, len Π”Π° Π”Π° НСт НСт cp Π”Π° Π”Π° Π”Π° Π”Π° n, с НСт Π”Π° НСт Π”Π° b2, e2 НСт Π”Π° НСт Π”Π° список ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ способов ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ строку

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ append(), assign(), insert() ΠΈ replace(), пСрСчислСнныС Π² Ρ‚Π°Π±Π». 9.13, ΠΈΠΌΠ΅ΡŽΡ‚ нСсколько ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… вСрсий. АргумСнты этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ зависят ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Π½Ρ‹ добавляСмыС символы ΠΈ какая Ρ‡Π°ΡΡ‚ΡŒ строки измСнится. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Ρƒ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс.

Π£ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ assign() ΠΈ append() Π½Π΅Ρ‚ нСобходимости ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ измСняСмыС части строки: функция assign() всСгда замСняСт всС содСрТимоС строки, Π° функция append() всСгда добавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки.

Ѐункция replace() прСдоставляСт Π΄Π²Π° способа опрСдСлСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° удалСния символов. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Π΄Π»ΠΈΠ½Π΅ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Ѐункция insert() прСдоставляСт Π΄Π²Π° способа опрСдСлСния ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ вставки: ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ индСкса ΠΈΠ»ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°. Π’ любом случаС Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт (элСмСнты) вставляСтся ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ индСксом ΠΈΠ»ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ.

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

НС каТдая функция ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС вСрсии этих Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². НапримСр, Π½Π΅Ρ‚ вСрсии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ insert(), ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΉ индСкс ΠΈ список ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Аналогично, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ вставки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ впослСдствии ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΊΠ°ΠΊ источник для Π½ΠΎΠ²Ρ‹Ρ… символов.

УпраТнСния Ρ€Π°Π·Π΄Π΅Π»Π° 9.5.2

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.43. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΡƒΡŽ Ρ‚Ρ€ΠΈ строки: s, oldVal ΠΈ newVal. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ insert(), ΠΈ erase() Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ всС ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² строкС s экзСмпляры строки oldVal строкой newVal. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΡ… общСпринятых сокращСний, ΠΊΠ°ΠΊ "tho" Π½Π° "though" ΠΈ "thru" Π½Π° "through".

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.44. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ использовались индСкс ΠΈ функция replace().

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.45. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΡƒΡŽ строку, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ имя ΠΈ Π΄Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ строки, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ прСфикс, Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ "Mr." ΠΈΠ»ΠΈ "Ms.", Π° Ρ‚Π°ΠΊΠΆΠ΅ суффикс, Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ "Jr." ΠΈΠ»ΠΈ "III". Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ insert() ΠΈ append(), создайтС Π½ΠΎΠ²ΡƒΡŽ строку с суффиксом ΠΈ прСфиксом, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ.

Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 9.46. ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π° сСй Ρ€Π°Π· ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π΄Π»ΠΈΠ½Ρƒ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ insert().

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

Класс string прСдоставляСт ΡˆΠ΅ΡΡ‚ΡŒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ поиска, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… вСрсии. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ поиска ΠΈ ΠΈΡ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ описаны Π² Ρ‚Π°Π±Π». 9.14. КаТдая ΠΈΠ· Π½ΠΈΡ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° string::size_type, ΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ индСксом Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. Если соотвСтствиС Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ статичСский Ρ‡Π»Π΅Π½ (см. Ρ€Π°Π·Π΄Π΅Π» 7.6) ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ string::npos. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° опрСдСляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ npos ΠΊΠ°ΠΊ -1 Ρ‚ΠΈΠΏΠ° const string::size_type. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ npos ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ npos соотвСтствуСт Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любая строка (см. Ρ€Π°Π·Π΄Π΅Π» 2.1.2).


Π’Π°Π±Π»ΠΈΡ†Π° 9.14. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ индСкс искомого символа ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ npos, Ссли искомоС Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ s.find(args) Π˜Ρ‰Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСстополоТСниС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° args Π² строкС s s.rfind(args) Π˜Ρ‰Π΅Ρ‚ послСднСС мСстополоТСниС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° args Π² строкС s s.find_first_of(args) Π˜Ρ‰Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСстополоТСниС любого символа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° args Π² строкС s s.find_last_of(args) Π˜Ρ‰Π΅Ρ‚ послСднСС мСстополоТСниС любого символа Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° args Π² строкС s s.find_first_not_of(args) Π˜Ρ‰Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСстополоТСниС символа Π² строкС s, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отсутствуСт Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ args s.find_last_not_of(args) Π˜Ρ‰Π΅Ρ‚ послСднСС мСстополоТСниС символа Π² строкС s, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отсутствуСт Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ args АргумСнт args ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ с, pos Поиск символа с, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos Π² строкС s. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ pos ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 s2, pos Поиск строки s2, начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos Π² строкС s. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ pos ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 cp, pos Поиск строки с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом Π² стилС Π‘, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ cp. Поиск начинаСтся с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos Π² строкС s. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ pos ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 cp, pos, n Поиск ΠΏΠ΅Ρ€Π²Ρ‹Ρ… n символов Π² массивС, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ cp. Поиск начинаСтся с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos Π² строкС s. АргумСнт pos ΠΈ n Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ поиска строк Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° string::size_type. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° int ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° для содСрТания значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ этими функциями (см. Ρ€Π°Π·Π΄Π΅Π» 2.1.2).