Π Π°Π·Π½ΠΎΠ΅

C string Ρ‡Ρ‚ΠΎ это: C++. Π Π°Π±ΠΎΡ‚Π° со строками. Класс string

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

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

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

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

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

К ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ символам строки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ индСксу, ΠΊΠ°ΠΊ ΠΊ элСмСнтам массива ΠΈΠ»ΠΈ C-строк. НапримСр S[0] — это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ символ строки.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ строки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ size() строки. НапримСр, послСдний символ строки S это S[S.size() — 1].

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

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

Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ с использованиСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… конструкторов:
string() — конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²) создаСт ΠΏΡƒΡΡ‚ΡƒΡŽ строку.
string(string & S) — копия строки S
string(size_t n, char c) — ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ символа c Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ число n Ρ€Π°Π·.
string(size_t c) — строка ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ символа c.
string(string & S, size_t start, size_t len) — строка, содСрТащая Π½Π΅ Π±ΠΎΠ»Π΅Π΅, Ρ‡Π΅ΠΌ len символов Π΄Π°Π½Π½ΠΎΠΉ строки S, начиная с символа Π½ΠΎΠΌΠ΅Ρ€ start.

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

Β 

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ явно вызываСтся конструктор string для создания строки, состоящСй ΠΈΠ· 10 символов 'z'.

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

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

Β 

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

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

Для считывания строки ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ «>>» для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° cin:

Π’ этом случаС считываСтся строка ΠΈΠ· Π½Π΅ΠΏΡ€ΠΎΠ±Π΅Π»ΡŒΠ½Ρ‹Ρ… символов, пропуская ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈ ΠΊΠΎΠ½Ρ†Ρ‹ строк. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ тСкст Π½Π° слова, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ while (cin >> S).

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

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

Π‘ΠΎ строками ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:
= — присваиваниС значСния.
+= — Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ† строки Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки ΠΈΠ»ΠΈ символа.
+ — конкатСнация Π΄Π²ΡƒΡ… строк, конкатСнация строки ΠΈ символа.
==, != — посимвольноС сравнСниС.
<, >, <=, >= — лСксикографичСскоС сравнСниС.

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ содСрТимоС ΠΎΠ΄Π½ΠΎΠΉ строки Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ S1 = S2, ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π΅ строки Π½Π° равСнство ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ S1 == S2, ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ строки Π² лСксикографичСском порядкС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ S1 < S2, ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ слоТСниС (ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ) Π΄Π²ΡƒΡ… строк Π² Π²ΠΈΠ΄Π΅ S = S1 + S2.

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

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ строк

Π£ строк Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколькими Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами (с Ρ€Π°Π·Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²).

Рассмотрим эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅ΠΉ.

size

ΠœΠ΅Ρ‚ΠΎΠ΄ size() Π²ΠΎΠ·Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ Π΄Π»ΠΈΠ½Ρƒ строки. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ (ΠΊΠ°ΠΊ ΠΈ Π²ΠΎ всСх случаях, ΠΊΠΎΠ³Π΄Π° функция Π²ΠΎΠ·Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ Π΄Π»ΠΈΠ½Π΅ строкС ΠΈΠ»ΠΈ индСксу элСмСнта — эти значСния Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ вычитания ΠΈΠ· значСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ size(). НапримСр, ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ запись Ρ†ΠΈΠΊΠ»Π°, ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‰Π΅Π³ΠΎ всС символы строки, ΠΊΡ€ΠΎΠΌΠ΅ послСднСго, Π² Π²ΠΈΠ΄Π΅ for (int i = 0; i < S.size() — 1; ++i).

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ строк Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ length(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки.

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

resize

S.resize(n) — Π˜Π·ΠΌΠ΅Π½ΡΠ΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки, новая Π΄Π»ΠΈΠ½Π° строки становится Ρ€Π°Π²Π½Π° n. ΠŸΡ€ΠΈ этом строка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΠΊ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡΡ, Ρ‚Π°ΠΊ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ. Если Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ S.resize(n, c), Π³Π΄Π΅ c — символ, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ Π΄Π»ΠΈΠ½Ρ‹ строки добавляСмыС символы Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π²Π½Ρ‹ c.

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

clear

S.clear() — ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ строчку, строка становится пустой.

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

empty

S.empty() — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли строка пуста, false — Ссли нСпуста.

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

push_back

S.push_back(c) — добавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки символ c, вызываСтся с ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Ρ‚ΠΈΠΏΠ° char.

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

append

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

S.append(n, c) — добавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки n ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… символов, Ρ€Π°Π²Π½Ρ‹Ρ… с. n ΠΈΠΌΠ΅Π΅Ρ‚ цСлочислСнный Ρ‚ΠΈΠΏ, c — char.

S.append(T) — добавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки S содСрТимоС строки T. T ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса string ΠΈΠ»ΠΈ C-строкой.

S.append(T, pos, count) — добавляСт Π² ΠΊΠΎΠ½Π΅Ρ† строки S символы строки T начиная с символа с индСксом pos количСством count.

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

erase

S.erase(pos) — удаляСт ΠΈΠ· строки SΒ  с символа с индСксом pos ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

S.erase(pos, count) — удаляСт ΠΈΠ· строки SΒ  с символа с индСксом pos количСством count ΠΈΠ»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки, Ссли pos + count > S.size().

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

insert

ВставляСт Π² сСрСдину строки нСсколько символов, Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку ΠΈΠ»ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки. Бпособы Π²Ρ‹Π·ΠΎΠ²Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ способам Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° append, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ i — позиция, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ символы. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ вставлСнный символ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ индСкс i, Π° всС символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½Π΅Π΅ ΠΈΠΌΠ΅Π»ΠΈ индСкс i ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²ΠΏΡ€Π°Π²ΠΎ.

S.insert(i, n, c) — Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ n ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… символов, Ρ€Π°Π²Π½Ρ‹Ρ… с. n ΠΈΠΌΠ΅Π΅Ρ‚ цСлочислСнный Ρ‚ΠΈΠΏ, c — char.

S.insert(i, T) — Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ содСрТимоС строки T. T ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса string ΠΈΠ»ΠΈ C-строкой.

S.insert(i, T, pos, count) — Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символы строки T начиная с символа с индСксом pos количСством count.

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

substr

S.substr(pos) — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подстроку Π΄Π°Π½Π½ΠΎΠΉ строки начиная с символа с индСксом pos ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки.

S.substr(pos, count) — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подстроку Π΄Π°Π½Π½ΠΎΠΉ строки начиная с символа с индСксом pos количСством count ΠΈΠ»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки, Ссли pos + count > S.size().

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

replace

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

S.replace(pos, count, n, c) — Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ n ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… символов, Ρ€Π°Π²Π½Ρ‹Ρ… с. n ΠΈΠΌΠ΅Π΅Ρ‚ цСлочислСнный Ρ‚ΠΈΠΏ, c — char.

S.replace(pos, count, T) — Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ содСрТимоС строки T. T ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса string ΠΈΠ»ΠΈ C-строкой.

S.replace(pos, count, T, pos2, count2) — Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символы строки T начиная с символа с индСксом pos количСством count.

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

find

Π˜Ρ‰Π΅Ρ‚ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ строки str. ВозвращаСтся Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа, начиная с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ подстрока, равная строкС str. Если эта строка Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Π°, Ρ‚ΠΎ возвращаСтся константа string::npos (которая Ρ€Π°Π²Π½Π° -1, Π½ΠΎ ΠΏΡ€ΠΈ этом являСтся Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° самом Π΄Π΅Π»Π΅ являСтся большим Π±Π΅Π·Π½Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ числом).

Если Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pos, Ρ‚ΠΎ поиск начинаСтся с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ мСньшС, Ρ‡Π΅ΠΌ pos. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pos Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ 0 — поиск осущСствляСтся с Π½Π°Ρ‡Π°Π»Π° строки.

S.find(str, pos = 0) — ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠ΄Π΅Π½ΠΈΠ΅ строки str начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos. Если pos Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ — Ρ‚ΠΎ начиная с Π½Π°Ρ‡Π°Π»Π° строки S.

S.find(str, pos, n) — ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС подстроку, Ρ€Π°Π²Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ n символам строки str. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pos Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½ΠΎ.

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

rfind

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

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

find_first_of

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

Если Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pos, Ρ‚ΠΎ поиск начинаСтся с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ мСньшС, Ρ‡Π΅ΠΌ pos. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pos Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Ρ€Π°Π²Π½ΠΎ 0 — поиск осущСствляСтся с Π½Π°Ρ‡Π°Π»Π° строки.

S.find_first_of(str, pos = 0) — ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠ΄Π΅Π½ΠΈΠ΅ любого символа строки str начиная с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ pos. Если pos Π½Π΅ Π·Π°Π΄Π°Π½ΠΎ — Ρ‚ΠΎ начиная с Π½Π°Ρ‡Π°Π»Π° строки S.

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

find_last_of

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

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

find_first_not_of

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

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

find_last_not_of

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

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

c_str

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

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

Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ String ΠΈ String Π² C#?

ΠŸΡ€ΠΎΡΡ‚ΠΎ для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹, Π²ΠΎΡ‚ свалка ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ…

ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, string псСвдоним System.String. Они ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄, поэтому Π²ΠΎ врСмя выполнСния, Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π½Π΅Ρ‚. Π­Ρ‚ΠΎ всСго лишь ΠΎΠ΄ΠΈΠ½ ΠΈΠ· псСвдонимов Π² C#. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список:

object:  System.Object
string:  System.String
bool:    System.Boolean
byte:    System.Byte
sbyte:   System.SByte
short:   System.Int16
ushort:  System.UInt16
int:     System.Int32
uint:    System.UInt32
long:    System.Int64
ulong:   System.UInt64
float:   System.Single
double:  System.Double
decimal: System.Decimal
char:    System.Char

ΠΏΠΎΠΌΠΈΠΌΠΎ string ΠΈ object, псСвдонимы всС для Ρ‚ΠΈΠΏΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. decimal являСтся Ρ‚ΠΈΠΏΠΎΠΌ значСния, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π² срСдС CLR. ЕдинствСнный ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ² Ρ‚ΠΈΠΏ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅Ρ‚ псСвдонима, —System.IntPtr.

Π² спСцификации псСвдонимы Ρ‚ΠΈΠΏΠΎΠ² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ извСстны ΠΊΠ°ΠΊ»ΠΏΡ€ΠΎΡΡ‚Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹». Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для постоянных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ простого Ρ‚ΠΈΠΏΠ°; Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ доступных Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ. (Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ это с VB, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт DateTime Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹, ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ псСвдоним для Π½Π΅Π³ΠΎ Ρ‚ΠΎΠΆΠ΅.)

Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π΅ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ псСвдонимы: ΠΏΡ€ΠΈ явном ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° пСрСчислСния. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

public enum Foo : UInt32 {} // Invalid
public enum Bar : uint   {} // Valid

это просто вопрос Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ спСцификация опрСдСляСт объявлСния пСрСчислСния-Ρ‡Π°ΡΡ‚ΡŒ послС двоСточия Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π˜Π½Ρ‚Π΅Π³Ρ€Π°Π»-Ρ‚ΠΈΠΏΠ° производство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· символов sbyte, byte, short, ushort, int, uint, long, ulong, char… Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚ΠΈΠΏ производства ΠΊΠ°ΠΊ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π­Ρ‚ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ.

Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ: Π»ΠΈΡ‡Π½ΠΎ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ псСвдонимы Π²Π΅Π·Π΄Π΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Ρ‚ΠΈΠΏ CLR для Π»ΡŽΠ±Ρ‹Ρ… API. На самом Π΄Π΅Π»Π΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ большого значСния, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ — ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ срСди вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠ°, Π½ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ ΡΡΡ‹Π»Π°Π΅Ρ‚Π΅ΡΡŒ Π½Π° Ρ‚ΠΈΠΏ Π² API, Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ это Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ языком. ΠœΠ΅Ρ‚ΠΎΠ΄ называСтся ReadInt32 являСтся ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹ΠΌ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ называСтся ReadInt Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ. Π—Π²ΠΎΠ½ΠΈΠ²ΡˆΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использованиС языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт int псСвдоним Int16, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π”ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ .NET framework слСдовали этому ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ Π² BitConverter, BinaryReader ΠΈ Convert классы.

string str1 = «Hello»; int v1 = str1.Length;

C# (язык программирования) Β 

НовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для изучСния C#

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π°

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… C#

β€’ C# Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: число (bool, char, byte, int, long, float, double, decimal), тСкст (string), пСрСчислСниС (enum), класс (class), структура (struct)

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· памяти

C# конвСртация Ρ‚ΠΈΠΏΠΎΠ²

ВСкст Π² C# (Ρ‚ΠΈΠΏ string ΠΈ класс String)

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ Π² C# (enum)

null

try-catch

ΠšΠ»Π°ΡΡΡ‹ Π² C# (class)

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ для класса

ДСструкторы для класса

НаслСдованиС

НаслСдованиС с использованиСм new

НаслСдованиС с использованиСм sealed

Абстрактный класс

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΈ readonly поля Π² классС

Бвойства get ΠΈ set Π² классС C# (аксСссоры)

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, индСксаторы Π² C#

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² C#

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ класса C#

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ классы Π² C# (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹)

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ класса Π² C#

БтатичСский конструктор ΠΈ статичСскиС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности класса Π² C#

ΠŸΡ€Π°Π²ΠΈΠ»Π° имСнования классов Π² C#

БтатичСский класс

Анонимный класс

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° struct

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° структуры ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ

ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° class Lazy Π² C#

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple)

ДинамичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ свойствами

ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

β€’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ (Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅) ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² C# ? ΠšΠ»Π°ΡΡΡ‹ List<T>, SortedList<T>, Stack<T>, Dictionary<TKey,TValue>, LinkedList<T>, Queue<T>, HashSet<T>, SortedSet<T>, ConcurrentDictionary<TKey, TValue>, SortedDictionary<TKey, TValue>

ΠšΠ»Π°ΡΡΡ‹ Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ хранятся элСмСнты Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°)

Класс ArrayList (коллСкция Π² C#)

Класс SortedList (коллСкция Π² C#)

Класс Stack (коллСкция Π² C#)

Класс Queue (коллСкция Π² C#)

Класс Hashtable (коллСкция Π² C#)

Класс BitArray (коллСкция Π² C#)

ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² C# (Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ хранятся элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°)

Класс List<T> (типизированная коллСкция Π² C#)

Класс LinkedList<T> (типизированная коллСкция Π² C#)

Класс SortedList<TKey, TValue> (типизированная коллСкция Π² C#)

Класс Stack<T> (типизированная коллСкция Π² C#)

Класс Queue<T> (типизированная коллСкция Π² C#)

Класс HashSet<T> (типизированная коллСкция Π² C#)

Класс SortedSet<T> (типизированная коллСкция Π² C#)

Класс ObservableCollection<T> (типизированная коллСкция Π² C#)

Класс Dictionary<TKey, TValue> (типизированная коллСкция Π² C#)

Класс SortedDictionary<TKey, TValue> (типизированная коллСкция Π² C#)

Класс ConcurrentDictionary<TKey, TValue> (типизированная коллСкция Π² C#)

АсимптотичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для добавлСния, удалСния, взятия элСмСнта Π² коллСкциях

β€’ АсимптотичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для добавлСния, удалСния, взятия элСмСнта Π² коллСкциях C# (List, SortedList, Stack, Dictionary, LinkedList, Queue, HashSet, SortedSet, ConcurrentDictionary, SortedDictionary)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° элСмСнтов Π² массивС [] ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ List

Моя рСализация IEnumerator, IEnumerable ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для IEnumerable (поиск, Π·Π°ΠΌΠ΅Π½Π°, Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) Π² C#

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π² LINQ (Language-Integrated Query)

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

БСриализация

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½

Delegate

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρ‹

Бобытия

Лямда

РСгулярныС выраТСния

ΠŸΡ€ΠΎΡ†Π΅ΡΡ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ процСсса

ΠŸΠΎΡ‚ΠΎΠΊΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

Parallel Library Task (TPL) ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡

АсинхронныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (async ΠΈ await)

Π”ΠΎΠΌΠ΅Π½Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Атрибуты

РСфлСксия (ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) reflection Π² C#

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора (if ΠΏΡ€ΠΈ компиляции)

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сборка ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ срСда CLR ?

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нашСй сборки

β–·

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… (Entity Framework) Π² консольном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ C#

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй (Dependency Injection) DI Π² C#

Π£Π΄ΠΎΠ±Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Visual Studio

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ C# Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ C++ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, вопросы

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ checked ΠΈ unchecked

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ C# классы

ВрСмя

WWW сайты для изучСния C#

string str1 = «Hello World!»; string str2 = str1.Substring(2, 5);

C# (язык программирования) Β 

НовоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для изучСния C#

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π°

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… C#

β€’ C# Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: число (bool, char, byte, int, long, float, double, decimal), тСкст (string), пСрСчислСниС (enum), класс (class), структура (struct)

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² памяти. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· памяти

C# конвСртация Ρ‚ΠΈΠΏΠΎΠ²

ВСкст Π² C# (Ρ‚ΠΈΠΏ string ΠΈ класс String)

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ Π² C# (enum)

null

try-catch

ΠšΠ»Π°ΡΡΡ‹ Π² C# (class)

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ для класса

ДСструкторы для класса

НаслСдованиС

НаслСдованиС с использованиСм new

НаслСдованиС с использованиСм sealed

Абстрактный класс

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ ΠΈ readonly поля Π² классС

Бвойства get ΠΈ set Π² классС C# (аксСссоры)

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, индСксаторы Π² C#

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π² C#

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ класса C#

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ классы Π² C# (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹)

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ класса Π² C#

БтатичСский конструктор ΠΈ статичСскиС свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности класса Π² C#

ΠŸΡ€Π°Π²ΠΈΠ»Π° имСнования классов Π² C#

БтатичСский класс

Анонимный класс

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° struct

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° структуры ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ

ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° class Lazy Π² C#

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ (tuple)

ДинамичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ свойствами

ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ

β€’ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Π΅ (Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅) ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π² C# ? ΠšΠ»Π°ΡΡΡ‹ List<T>, SortedList<T>, Stack<T>, Dictionary<TKey,TValue>, LinkedList<T>, Queue<T>, HashSet<T>, SortedSet<T>, ConcurrentDictionary<TKey, TValue>, SortedDictionary<TKey, TValue>

ΠšΠ»Π°ΡΡΡ‹ Π½Π΅ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ (Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ хранятся элСмСнты Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°)

Класс ArrayList (коллСкция Π² C#)

Класс SortedList (коллСкция Π² C#)

Класс Stack (коллСкция Π² C#)

Класс Queue (коллСкция Π² C#)

Класс Hashtable (коллСкция Π² C#)

Класс BitArray (коллСкция Π² C#)

ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π² C# (Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ хранятся элСмСнты ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°)

Класс List<T> (типизированная коллСкция Π² C#)

Класс LinkedList<T> (типизированная коллСкция Π² C#)

Класс SortedList<TKey, TValue> (типизированная коллСкция Π² C#)

Класс Stack<T> (типизированная коллСкция Π² C#)

Класс Queue<T> (типизированная коллСкция Π² C#)

Класс HashSet<T> (типизированная коллСкция Π² C#)

Класс SortedSet<T> (типизированная коллСкция Π² C#)

Класс ObservableCollection<T> (типизированная коллСкция Π² C#)

Класс Dictionary<TKey, TValue> (типизированная коллСкция Π² C#)

Класс SortedDictionary<TKey, TValue> (типизированная коллСкция Π² C#)

Класс ConcurrentDictionary<TKey, TValue> (типизированная коллСкция Π² C#)

АсимптотичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для добавлСния, удалСния, взятия элСмСнта Π² коллСкциях

β€’ АсимптотичСская ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для добавлСния, удалСния, взятия элСмСнта Π² коллСкциях C# (List, SortedList, Stack, Dictionary, LinkedList, Queue, HashSet, SortedSet, ConcurrentDictionary, SortedDictionary)

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° элСмСнтов Π² массивС [] ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ List

Моя рСализация IEnumerator, IEnumerable ΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для IEnumerable (поиск, Π·Π°ΠΌΠ΅Π½Π°, Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ) Π² C#

Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ°, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π² LINQ (Language-Integrated Query)

Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ

Π Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ

БСриализация

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½

Delegate

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρ‹

Бобытия

Лямда

РСгулярныС выраТСния

ΠŸΡ€ΠΎΡ†Π΅ΡΡ, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ процСсса

ΠŸΠΎΡ‚ΠΎΠΊΠΈ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

Parallel Library Task (TPL) ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡

АсинхронныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ (async ΠΈ await)

Π”ΠΎΠΌΠ΅Π½Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

Атрибуты

РСфлСксия (ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅) reflection Π² C#

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора (if ΠΏΡ€ΠΈ компиляции)

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ сборка ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ срСда CLR ?

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нашСй сборки

β–·

Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… (Entity Framework) Π² консольном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ C#

Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ зависимостСй (Dependency Injection) DI Π² C#

Π£Π΄ΠΎΠ±Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Visual Studio

Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ C# Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ C++ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, вопросы

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ checked ΠΈ unchecked

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ C# классы

ВрСмя

WWW сайты для изучСния C#

.net — Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ String ΠΈ String Π² C #?

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

.

c ++ — String :: New: Ρ‡Ρ‚ΠΎ это?

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

Загрузка…

.

6.6 — Π‘Ρ‚Ρ€ΡƒΠ½Ρ‹ Π² стилС Π‘ | Π˜Π·ΡƒΡ‡ΠΈΡ‚Π΅ C ++

Π’ ΡƒΡ€ΠΎΠΊΠ΅ 4.4b — Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² std :: string ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ строку ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… символов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Β«Hello, world!Β». Π‘Ρ‚Ρ€ΠΎΠΊΠΈ — это основной способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом Π² C ++, Π° std :: string ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ со строками Π² C ++.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ C ++ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° строк: std :: string (ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ) ΠΈ строки Π² стилС C (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ унаслСдованныС ΠΎΡ‚ языка C). ΠžΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ΡΡ, std :: string Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ с использованиСм строк Π² стилС C.Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ рассмотрим струны Π² стилС C.

Π‘Ρ‚Ρ€ΡƒΠ½Ρ‹ Π² стилС C

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π² стилС C — это просто массив символов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€. Π—Π½Π°ΠΊ ΠΊΠΎΠ½Ρ†Π° строки . — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ (Β«\ 0Β», ΠΊΠΎΠ΄ ascii 0), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для обозначСния ΠΊΠΎΠ½Ρ†Π° строки. Π’ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΌ смыслС, строка Π² стилС C называСтся строкой с Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠ»Π΅ΠΌ .

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ строку Π² стилС C, просто ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ массив символов ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ строковым Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ:

char myString [] {«ΡΡ‚Ρ€ΠΎΠΊΠ°»};

Π₯отя «строка» состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· 6 Π±ΡƒΠΊΠ², C ++ автоматичСски добавляСт Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€ Π² ΠΊΠΎΠ½Π΅Ρ† строки для нас (Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ самим).Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, myString Π½Π° самом Π΄Π΅Π»Π΅ прСдставляСт собой массив Π΄Π»ΠΈΠ½ΠΎΠΉ 7!

Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ этого ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, которая распСчатываСт Π΄Π»ΠΈΠ½Ρƒ строки, Π° Π·Π°Ρ‚Π΅ΠΌ значСния ASCII всСх символов:

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

#include

#include // для std :: size

int main ()

{

char myString [] {«ΡΡ‚Ρ€ΠΎΠΊΠ°»};

const int length {static_cast (std :: size (myString))};

// const int length {sizeof (myString) / sizeof (myString [0])}; // вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅, Ссли Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ C ++ 17

std :: cout << myString << "ΠΈΠΌΠ΅Π΅Ρ‚ символы" << length << ".\ n ";

для (int index {0}; index

std :: cout << static_cast (myString [index]) << '';

std :: cout << '\ n';

return 0;

}

Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

строка состоит ΠΈΠ· 7 символов.
115 116 114 105 110 103 0
 

0 — это ΠΊΠΎΠ΄ ASCII Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ† строки.

ΠŸΡ€ΠΈ объявлСнии строк Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ [] ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ компилятору Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ строку ΠΏΠΎΠ·ΠΆΠ΅, Π²Π°ΠΌ Π½Π΅ придСтся Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚: строки Π² стилС C ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‚ΡΡ всСм Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ массивы. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку ΠΏΡ€ΠΈ создании, Π½ΠΎ послС этого Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΅ΠΉ значСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания!

char myString [] {«ΡΡ‚Ρ€ΠΎΠΊΠ°»}; // Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ

myString = «rope»; // Π½Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ!

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ строки Π² стилС C ΡΠ²Π»ΡΡŽΡ‚ΡΡ массивами, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ [] для измСнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… символов Π² строкС:

#include

int main ()

{

char myString [] {«ΡΡ‚Ρ€ΠΎΠΊΠ°»};

myString [1] = ‘Ρ€’;

std :: cout << myString << '\ n';

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚:

вСсна
 

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ строки Π² стилС C std :: cout ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ символы, ΠΏΠΎΠΊΠ° Π½Π΅ встрСтит Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€.Если Π²Ρ‹ случайно ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€ Π² строкС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, присвоив Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ myString [6]), Π²Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ всС символы Π² строкС, Π½ΠΎ std :: cout Π±ΡƒΠ΄Π΅Ρ‚ просто ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ всС Π² сосСдних слотах памяти Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° это случаСтся, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ 0!

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Ссли массив большС, Ρ‡Π΅ΠΌ содСрТащаяся Π² Π½Π΅ΠΌ строка:

#include

int main ()

{

имя символа [20] {«Alex»}; // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 5 символов (4 Π±ΡƒΠΊΠ²Ρ‹ + Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€)

std :: cout << "МСня Π·ΠΎΠ²ΡƒΡ‚:" << name << '\ n';

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π’ этом случаС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π½Π° строка Β«AlexΒ», Π° std :: cout остановится Π½Π° Π½ΡƒΠ»Π΅Π²ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅.ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ символы Π² массивС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Π‘Ρ‚Ρ€ΡƒΠ½Ρ‹ ΠΈ std Π² стилС C :: cin

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΌΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΊΠ°ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ наша строка. НапримСр, рассмотрим Π·Π°Π΄Π°Ρ‡Ρƒ написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти своС имя. Как Π΄ΠΎΠ»Π³ΠΎ ΠΈΡ… Π·ΠΎΠ²ΡƒΡ‚? ΠœΡ‹ Π½Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΠΉΠ΄ΡƒΡ‚!

Π’ этом случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ массив большС, Ρ‡Π΅ΠΌ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ:

#include

int main ()

{

имя символа [255]; // объявляСм массив достаточно большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ 255 символов

std :: cout << "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ своС имя:";

std :: cin >> name;

std :: cout << "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ:" << name << '\ n';

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ массив ΠΈΠ· 255 символов для ΠΈΠΌΠ΅Π½ΠΈ, прСдполагая, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ количСство символов.Π₯отя это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° C / C ++, это плохая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° программирования, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½ΠΈΡ‡Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ввСсти Π±ΠΎΠ»Π΅Π΅ 255 символов (Π½Π΅ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ).

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ способ чтСния строк Π² стилС C с использованиСм std :: cin выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

#include

#include // для std :: size

int main ()

{

имя символа [255]; // объявляСм массив достаточно большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ 255 символов

std :: cout << "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ своС имя:";

std :: cin.getline (имя, std :: size (имя));

std :: cout << "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ:" << name << '\ n';

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ² cin.getline () считываСт имя Π΄Π»ΠΈΠ½ΠΎΠΉ Π΄ΠΎ 254 символов (оставляя мСсто для Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€Π°!). Π›ΡŽΠ±Ρ‹Π΅ лишниС символы Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΠΌ массив!

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ строками Π² стилС C

C ++ прСдоставляСт мноТСство Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для управлСния строками Π² стилС C ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° .Π’ΠΎΡ‚ нСсколько Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…:

strcpy () позволяСт ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку. Π§Π°Ρ‰Π΅ всСго это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для присвоСния значСния строкС:

#include

int main ()

{

char source [] {«Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ это!» };

Π·Π½Π°ΠΊΠΎΠ² [50];

std :: strcpy (Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, исходный ΠΊΠΎΠ΄);

std :: cout << dest << '\ n'; // Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ "Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ это!"

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Однако strcpy () ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива, Ссли Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ остороТны! Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ dest нСдостаточно Π²Π΅Π»ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всю строку, поэтому Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ массива.

#include

int main ()

{

char source [] {«Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ это!» };

символ [5]; // ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° dest всСго 5 символов!

std :: strcpy (Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, исходный ΠΊΠΎΠ΄); // ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅!

std :: cout << dest << '\ n';

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

МногиС программисты Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ вмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ strncpy (), которая позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚.К соТалСнию, strncpy () Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ строки Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ Π½ΡƒΠ»Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ оставляСт ΠΌΠ½ΠΎΠ³ΠΎ мСста для пСрСполнСния массива.

Π’ C ++ 11 ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π° strcpy_s (), которая добавляСт Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для опрСдСлСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° мСста назначСния. Однако Π½Π΅ всС компиляторы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΈ для Π΅Π΅ использования Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ __STDC_WANT_LIB_EXT1__ с цСлочислСнным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1.

#define __STDC_WANT_LIB_EXT1__ 1

#include // для strcpy_s

int main ()

{

char source [] {«Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ это!» };

символ [5]; // ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° dest всСго 5 символов!

strcpy_s (dest, 5, source); // Ошибка выполнСния ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

std :: cout << dest << '\ n';

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ всС компиляторы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ strcpy_s (), strlcpy () являСтся популярной Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ, Π΄Π°ΠΆΠ΅ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° нСстандартна ΠΈ поэтому Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ компиляторы.Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ свой Π½Π°Π±ΠΎΡ€ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, здСсь Π½Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку Π² стилС C.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° полСзная функция — функция strlen (), которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ строки Π² стилС C (Π±Π΅Π· Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€Π°).

#include

#include

#include // для std :: size

int main ()

{

имя символа [20] {«Alex» }; // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 5 символов (4 Π±ΡƒΠΊΠ²Ρ‹ + Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ€)

std :: cout << "МСня Π·ΠΎΠ²ΡƒΡ‚:" << name << '\ n';

std :: cout << name << "содСрТит" << std :: strlen (name) << "Π±ΡƒΠΊΠ².\ n ";

std :: cout << name <<" ΠΈΠΌΠ΅Π΅Ρ‚ "<< std :: size (name) <<" символов Π² массивС. \ n "; // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ sizeof (name) / sizeof (name [0]) Ссли Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ C ++ 17

return 0;

}

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ пСчатаСтся:

МСня Π·ΠΎΠ²ΡƒΡ‚ АлСкс
Π£ АлСкса 4 Π±ΡƒΠΊΠ²Ρ‹.
У АлСкса 20 символов в массивС.
 

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ strlen () ΠΈ std :: size (). strlen () ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ количСство символов ΠΏΠ΅Ρ€Π΅Π΄ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ std :: size (ΠΈΠ»ΠΈ Ρ‚Ρ€ΡŽΠΊ sizeof ()) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ всСго массива, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ находится.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
strcat () — добавляСт ΠΎΠ΄Π½Ρƒ строку ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ (опасно)
strncat () — добавляСт ΠΎΠ΄Π½Ρƒ строку ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ (с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π±ΡƒΡ„Π΅Ρ€Π°)
strcmp () — сравниваСт Π΄Π²Π΅ строки (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0, Ссли Ρ€Π°Π²Π½ΠΎ )
strncmp () — Π‘Ρ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΄Π²Π΅ строки Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ количСства символов (Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0, Ссли Ρ€Π°Π²Π½ΠΎ)

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ этого ΡƒΡ€ΠΎΠΊΠ°:

1

2

3

4

5

6

7

8

9

10

11

12

13

140002

14

18

19

20

21

22

23

24

25

#include

#include

#include // для std :: size

int main ()

{

// ΠŸΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ввСсти строку

ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ [255];

std :: cout << "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ строку:";

std :: cin.getline (Π±ΡƒΡ„Π΅Ρ€, std :: size (Π±ΡƒΡ„Π΅Ρ€));

int ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π½Π°ΠΉΠ΄Π΅Π½ΠΎ {0};

int bufferLength {static_cast (std :: strlen (buffer))};

// ΠŸΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅ΠΌ всС символы, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

для (int index {0}; index

{

// Если Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ символ — ΠΏΡ€ΠΎΠ±Π΅Π», подсчитайтС Π΅Π³ΠΎ

Ссли (Π±ΡƒΡ„Π΅Ρ€ [индСкс] == »)

++ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π½Π°ΠΉΠ΄Π΅Π½ΠΎ;

}

std :: cout << "Π’Ρ‹ Π²Π²Π΅Π»ΠΈ" << spaceFound << "ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹! \ N";

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ strlen (buffer) Π²Π½Π΅ Ρ†ΠΈΠΊΠ»Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΄Π»ΠΈΠ½Π° строки вычисляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π° Π½Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° провСряСтся условиС Ρ†ΠΈΠΊΠ»Π°.

НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ строки Π² стилС C

Π’Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ строки Π² стилС C, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠ΄Π°Ρ…. Однако Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ объяснили, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, ΠΌΡ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΈΡ…, ΠΊΠΎΠ³Π΄Π° это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ! Если Ρƒ вас Π½Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСской ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ строки Π² стилС C, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вмСсто Π½ΠΈΡ… std :: string (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ). std :: string ΠΏΡ€ΠΎΡ‰Π΅, бСзопаснСС ΠΈ Π³ΠΈΠ±Ρ‡Π΅. Π’ Ρ€Π΅Π΄ΠΊΠΈΡ… случаях, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с фиксированными Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ строками Π² стилС C (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€,Π³. для устройств с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ объСмом памяти), ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΡƒΡŽ для этой Ρ†Π΅Π»ΠΈ, ΠΈΠ»ΠΈ std :: string_view , которая Π±ΡƒΠ΄Π΅Ρ‚ рассмотрСна Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡƒΡ€ΠΎΠΊΠ΅.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ std :: string ΠΈΠ»ΠΈ std :: string_view (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠΊ) вмСсто строк Π² стилС C.

.

c # — Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ $ ΠΏΠ΅Ρ€Π΅Π΄ строкой?

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

  1. Около
  2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

  3. Для ΠΊΠΎΠΌΠ°Π½Π΄
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
    ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

  2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
    Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

  3. Вакансии
    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

  4. Π’Π°Π»Π°Π½Ρ‚
    НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

  5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

  6. О компании

.

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

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