Cara menggunakan C ++ String Literal

How Use C String Literal



Papan kekunci komputer mempunyai aksara yang dicetak di atasnya. Apabila anda menekan kekunci, anda akan melihat watak di skrin. Catatan: ruang juga watak. Huruf rentas adalah urutan watak. Artikel ini menerangkan cara menggunakan literal string C ++. Anda harus mengetahui mengenai susunan dan petunjuk C ++ untuk memahami artikel ini.

Huruf Watak

Huruf watak adalah watak dalam petikan tunggal. Jadi,







charident1= 'KE'; charident2= 'b'; charident3= '4'; charident4= '6';

semua definisi watak berbeza. Perhatikan bahawa digit dalam petikan tunggal adalah watak dan bukan bilangan bulat.



Urutan melarikan diri seperti (lihat di bawah) dalam petikan tunggal, adalah watak. Jadi,



charident1= '' ';

adalah watak.





Simbol tunggal dalam petikan ganda bukan watak; ia adalah rentetan dari satu watak. Jadi A atau c atau 2 bukan watak tetapi rentetan satu watak masing-masing.

Pemboleh ubah char dapat ditugaskan kembali, kemudian turun dalam program, seperti berikut:



charident= 'x';
ident= 'DAN';

Untuk menghentikan watak yang diberikan kepada pengecam diubah, kemudian turun dalam program, mendahului definisi dengan kata yang dikhaskan, const, seperti berikut:

penyambung charident= 'd';

Pemboleh ubah, ident dikatakan hanya boleh dibaca.

String Literal

Huruf rentas adalah urutan watak dalam petikan ganda. Jadi,

charident1[] = 'Saya sayang awak'; charident2[] = 'Saya benci 3 daripada anda'; charident3[]
= 'kita adalah dunia'; charident4[] = 'Hai dunia!';

semua definisi literal rentetan berbeza. Perhatikan penggunaan petikan ganda. Tidak ada seperti pemboleh ubah biasa untuk rentetan. String literal adalah susunan huruf, di mana bukannya membatasi dengan {}, urutannya dibatasi dengan. Huruf tidak dipisahkan dengan koma. Sebilangan nombor yang lebih besar daripada bilangan huruf dalam literal string boleh diletakkan di dalam tanda kurung. Walau bagaimanapun, lebih baik membiarkan kurungan persegi kosong.

Satu watak dalam petikan ganda bukan watak; ia adalah rentetan dari satu watak. Jadi A atau c atau 2 bukan watak, tetapi rentetan satu watak masing-masing.

Pemboleh ubah rentetan tidak membenarkan penugasan semula literal lengkap, kemudian turun dalam program - lihat di bawah. Walau bagaimanapun, watak individu boleh ditugaskan semula - lihat di bawah.

Petikan Tunggal dan Berganda dalam Karakter atau Literal

Untuk mempunyai satu petikan sebagai watak, lakukan seperti,

charident= ' '';

Untuk mempunyai petikan berganda sebagai watak dalam literal rentetan, lakukan sesuatu seperti,

charident[] = 'jauh'CD';

Tanda miring terbalik digunakan dalam urutan pelarian, untuk mengelakkan konflik dengan pembatas. Untuk mempunyai petikan berganda sebagai watak, tidak perlu garis miring terbalik: '' tidak mengapa. Untuk memiliki satu petikan dalam literal string, tidak perlu ada garis miring terbalik: tidak baik.

Oleh kerana garis miring terbalik digunakan untuk melarikan diri dari karakter, ia harus dilarikan dengan garis miring balik yang lain ketika digunakan sebagai karakter atau dalam huruf harfiah.

Urutan melarikan diri

Urutan melarikan diri adalah salah satu daripada:

''? \ ke b f n r> t v

Setiap urutan pelarian biasanya ditaip sama ada sebagai watak dalam tanda petik tunggal atau sebagai urutan pelarian dalam petikan ganda.

  • ': Digunakan sebagai watak petikan tunggal, dalam tanda petik tunggal.
  • : digunakan sebagai watak petikan ganda, dalam literal.
  • ? : sejak ? adalah watak terpelihara, ia harus dilarikan secara harfiah.
  • \: garis miring terbalik harus dilarikan sebagai watak atau huruf harfiah, agar tidak menghasilkan makna lain.
  • a: membunyikan loceng penggera sekali, ketika digunakan sebagai watak atau dalam string harfiah.
  • b: hasilnya sebagai ruang belakang dalam paparan dalam string harfiah, melepaskan watak sebelumnya.
  • f: menyebabkan halaman seterusnya dimasukkan ke pencetak ketika digunakan sebagai watak atau dalam literal.
  • r: mengembalikan kursor, di mana watak seterusnya akan dicetak, tetapi berada dalam baris semasa.
  • n: mengembalikan kursor ke permulaan baris seterusnya atau hanya ke baris seterusnya, bergantung pada sistem operasi.
  • t: membuat tab mendatar.
  • v: membuat tab menegak.

Operasi dengan Watak

Gabungan

Pada definisi, dua literal string boleh digabungkan dengan ruang seperti berikut:

charident[] = 'abc' 'def';
kos<<ident<< ' n';

Keluarannya adalah: abcdef. Definisi ini dapat diperluas kepada lebih dari dua literal. Catatan: pernyataan itu adalah definisi, bukan hanya tugasan. Definisi bahkan boleh terus ke baris seterusnya dengan ruang yang memisahkan garis seperti berikut:

charident[] = 'abc' 'def'
'mengambil nota';
kos<<ident<< ' n';

Keluarannya adalah, abcdefghi.

Catatan: Karakter tidak dapat digabungkan dengan cara ini, kerana tanda kutip tunggal untuk watak tidak boleh memiliki lebih dari satu simbol.

Pengendali Kesamarataan

Watak yang sama pada kes yang sama adalah sama. Mereka tidak sama jika tidak mempunyai kes yang sama. Pertimbangkan,

hasil bool= 'B' == 'B';
kos<<hasil<< ' n';

== bermaksud sama, sedangkan = bermaksud ditugaskan-dan tidak sama. Keluarannya adalah 1 untuk true. Pertimbangkan,

hasil bool= 'B' == 'b';
kos<<hasil<< ' n';

Output adalah 0 untuk false. Pertimbangkan,

hasil bool= 'b' == 'c';
kos<<hasil<< ' n';

Output adalah 0 untuk false. Pertimbangkan,

hasil bool= 'B' ! = 'B';
kos<<hasil<< ' n';

! = bermaksud tidak sama, sedangkan = bermaksud ditugaskan-dan tidak tidak sama. Output adalah 0 untuk false. Pertimbangkan,

hasil bool= 'B' ! = 'b';
kos<<hasil<< ' n';

Keluarannya adalah 1 untuk true. Pertimbangkan,

hasil bool= 'b' ! = 'c';
kos<<hasil<< ' n';

Keluarannya adalah 1 untuk true.

Jadi, == dan! = Adalah pengendali persamaan.

Pengendali Perhubungan

Untuk watak biasa dalam huruf C ++, dalam urutan menaik, angka muncul sebelum huruf besar, yang muncul sebelum huruf kecil.

Jadi= dijelaskan sama.

String Literal sebagai Objek

Array adalah penunjuk berterusan ke permulaan urutan jenis data tertentu. Begitu juga, rentetan adalah penunjuk berterusan ke permulaan urutan watak. Bandingkan definisi berikut:

intarr[] = {3, 4, 5, 6, 7};
charhlm[] = {'dalam', 'atau', 'm', 'ke', 'n'};
charberusaha[] = 'wanita';

Susunan pertama adalah susunan ints dan mempunyai lima elemen. Susunan kedua dan ketiga adalah tatasusunan watak dengan nama yang berbeza, tetapi bilangan elemennya sama. Susunan kedua dan ketiga adalah sama, tetapi untuk namanya. Kandungan teks larik kedua dibatasi dengan pendakap; watak dipisahkan dengan koma dan setiap watak dalam petikan tunggal. Kandungan teks bagi susunan ketiga dibatasi dengan tanda petik dua kali; watak tidak dipisahkan dengan koma dan setiap watak tidak dalam tanda petik tunggal. Susunan kedua dan ketiga adalah dua cara menghasilkan rentetan, dengan cara ketiga menjadi cara yang lebih baik.

arr adalah penunjuk berterusan ke elemen pertama dari susunannya, yang bermaksud arr akan selalu menunjuk ke lokasi yang mempunyai bilangan bulat, 3 walaupun nilai 3 diubah. Ukuran susunan, lima elemen, tidak betul-betul tetap. Walau bagaimanapun, setiap nilai array dapat diubah.

str adalah penunjuk berterusan ke elemen pertama dari susunannya, yang bermaksud str akan selalu menunjukkan lokasi yang mempunyai watak, 'w' walaupun nilai 'w' diubah. Ukuran susunan watak, lima elemen, tidak betul-betul tetap. Walau bagaimanapun, setiap nilai literal dapat diubah.

stri adalah penunjuk berterusan ke elemen pertama literal (array), yang bermaksud stri akan selalu menunjukkan lokasi yang mempunyai watak, w walaupun nilai w berubah. Ukuran literal string (array), lima elemen, tidak benar-benar tetap. Walau bagaimanapun, setiap nilai literal dapat diubahsuai.

Apakah pemalar dalam laras atau rentetan rentetan? Alamat memori elemen pertama array atau literal tetap sebagai nilai nama (pengenal) array atau literal, dan tidak dapat diubah. Nah, ukuran susunan atau literal tidak benar-benar tetap. Setiap nilai dalam susunan atau literal dapat diubah. Kod berikut menunjukkan bagaimana elemen keempat setiap susunan telah diubah:

intarr[] = {3, 4, 5, 6, 7};
charhlm[] = {'dalam', 'atau', 'm', 'ke', 'n'};
charberusaha[] = 'wanita';

arr[3] = 9;
hlm[3] = 'Dan';
berusaha[3] = 'Dan';

kos<<arr[3] << ' n';
kos<<hlm<< ' n';
kos<<berusaha<< ' n';

Keluarannya adalah:

9
wanita wanita
wanita

Perhatikan bahawa elemen literal string yang ditentukan, seperti untuk definisi ketiga di atas, dapat diakses dengan indeks array (subskrip). Sebab untuk baris kedua output diberikan di bawah.

Langganan Definisi

Perhatikan bahawa dalam definisi di atas, tidak ada bilangan bulat untuk langganan. Apabila bilangan elemen tidak dapat ditentukan dengan mudah, oleh pengaturcara, bilangan bulat untuk langganan harus dihilangkan. Walau apa pun, bilangan bulat tidak boleh kurang daripada bilangan elemen dalam larik.

Untuk literal string, bilangan bulat harus sekurang-kurangnya 1 lebih tinggi daripada bilangan watak dalam rentetan. Ini kerana watak null ( 0) selalu ditambahkan oleh penyusun, pada akhir array yang merupakan rentetan, dibatasi oleh tanda petik dua kali. Karakter nol tidak ditambahkan pada akhir larik kedua di atas, kerana ia bukan rentetan rasmi. Susunan ketiga adalah rentetan rasmi. Kod berikut menunjukkan nilai langganan minimum.

intarr[5] = {3, 4, 5, 6, 7};
charhlm[5] = {'dalam', 'atau', 'm', 'ke', 'n'};
charberusaha[6] = 'wanita';

Untuk menjadikan definisi kedua sebagai rentetan rasmi, watak null harus ditambahkan seperti berikut:

intarr[5] = {3, 4, 5, 6, 7};
charhlm[6] = {'dalam', 'atau', 'm', 'ke', 'n', ' 0'};
charberusaha[6] = 'wanita';

Hasilnya sekarang,

9
wanita
wanita

tanpa wanita kedua. Perhatikan bahawa subskrip yang sesuai untuk array kedua adalah 6, dan bukan 5 seperti sebelumnya.

Nilai Literal Tetap

Untuk menghentikan sebarang watak dalam petikan ganda yang diberikan kepada pengecam daripada diubah, kemudian turun dalam program, mendahului definisi dengan kata yang dikhaskan, const, seperti berikut:

penyambung charident[] = 'Saya sayang awak';

Operasi dengan String Literals

Operasi Persamaan

Pengendali persamaan adalah == dan! =. Apabila pemboleh ubah (pengecam) dua rentetan dibandingkan, maka petunjuk (alamat) literal akhirnya dibandingkan; itu salah. Untuk membandingkan rentetan, harfiah harus dibandingkan, seperti dalam kod berikut:

hasil bool= 'wanita' == 'wanita';
kos<<hasil<< ' n';

Keluarannya adalah 1 untuk true. Perbandingan dilakukan dengan cara kamus, tetapi dengan angka yang didahulukan dalam urutan menaik, sebelum huruf besar, yang muncul sebelum huruf kecil. Keluaran kod berikut adalah 0, untuk false.

hasil bool= 'wanita' ! = 'wanita';
kos<<hasil<< ' n';

Operator Relasional dengan String Literals

Operator hubungan tidak berfungsi dengan literal rentetan.

String Raw Raw

Huruf mentah harfiah, membolehkan rentetan ditampilkan sebagai diketik, mengabaikan urutan pelarian dan menghormati baris baru. Pertimbangkan kod berikut:

charhlm[] =R'(abc\d efg dia
klmn n'
'opq
rst) ';
kos<< str << '
n';

Keluarannya adalah:

abc \ d efg dia
klmn n'' opq
rst

Dalam kod, literal string mentah bermula dengan R, diikuti oleh dan (. Ia berakhir dengan) dan.

Jenis Literal String Utama C ++

char

Jenis char adalah jenis C ++ yang asli dan biasanya menyimpan watak dalam 8 bit.

char16_t

Ini menyimpan watak dalam 16 bit.

char32_t

Ini menyimpan watak dalam 32 bit.

wchar_t

char16_t dan char32_t adalah watak yang luas. wchar_t adalah watak luas yang ditentukan oleh hak milik dan pelaksanaan.

Kesimpulannya

Huruf watak adalah watak tunggal dalam petikan tunggal. Urutan melarikan diri adalah watak yang juga boleh terdapat dalam petikan tunggal. Huruf rentas adalah urutan watak dalam petikan ganda. String literal adalah susunan watak yang diakhiri dengan 0. Pengendali persamaan dan hubungan bekerja dengan literal watak. Pengendali kesetaraan bekerja dengan literal rentetan, tetapi operator hubungan tidak berfungsi dengan literal rentetan. Pengecam watak boleh digunakan dalam perbandingan, tetapi pengenal rentetan tidak boleh digunakan dalam perbandingan. Huruf string mentah membolehkan rentetan ditampilkan sebagai diketik, mengabaikan urutan pelarian dan menghormati baris baru.

Chrys