C++ String Literal nasıl kullanılır?

How Use C String Literal



Bilgisayar klavyesinde üzerlerinde basılı karakterler bulunur. Bir tuşa bastığınızda ekranda karakteri görürsünüz. Not: boşluk da bir karakterdir. Bir dize değişmezi, bir karakter dizisidir. Bu makale, C++ dize değişmezlerinin nasıl kullanılacağını açıklar. Bu makaleyi anlamak için C++ dizileri ve işaretçileri hakkında bilgi sahibi olmalısınız.

Karakter Değişmezi

Karakter değişmezi, tek tırnak içindeki bir karakterdir. Yani,







karakterkimlik1= 'İLE'; karakterkimlik2= 'B'; karakterkimlik3= '4'; karakterkimlik4= '6';

hepsi farklı karakter tanımlarıdır. Tek tırnak içindeki bir rakamın bir tamsayı değil bir karakter olduğunu unutmayın.



Tek tırnak içindeki (aşağıya bakın) gibi bir kaçış dizisi bir karakterdir. Yani,



karakterkimlik1= ''';

bir karakterdir.





Çift tırnak içindeki tek bir sembol bir karakter değildir; bir karakterden oluşan bir dizedir. Yani A veya c veya 2 bir karakter değil, her biri bir karakterden oluşan bir dizedir.

Bir karakterin değişkeni, programda daha sonra aşağıdaki gibi yeniden atanabilir:



karakterkimlik= 'x';
kimlik= 'VE';

Bir tanımlayıcıya atanan bir karakterin değiştirilmesini durdurmak için, programın ilerleyen kısımlarında, aşağıdaki gibi ayrılmış kelime olan const tanımın önüne gelin:

const karakterkimlik= 'NS';

ident değişkeninin salt okunur olduğu söylenir.

Dize Değişmezi

Bir dize değişmezi, çift tırnak içindeki bir karakter dizisidir. Yani,

karakterkimlik1[] = 'Seni seviyorum'; karakterkimlik2[] = '3 kişiden nefret ediyorum'; karakterkimlik3[]
= 'Biz dünyayız'; karakterkimlik4[] = 'Selam Dünya!';

dize değişmezlerinin tümü farklı tanımlarıdır. Çift tırnak kullanımına dikkat edin. Bir dize için sıradan bir değişken gibisi yoktur. Bir dize değişmezi, {} ile sınırlandırmak yerine dizinin ile sınırlandırıldığı bir karakter dizisidir. Karakterler virgülle ayrılmamıştır. Dize değişmezindeki karakter sayısından daha büyük herhangi bir sayı köşeli parantez içine yerleştirilebilir. Ancak köşeli parantezleri boş bırakmak daha iyidir.

Çift tırnak içindeki tek bir karakter bir karakter değildir; bir karakterden oluşan bir dizedir. Yani A veya c veya 2 bir karakter değil, her biri bir karakterden oluşan bir dizedir.

Bir dize değişkeni, programın daha sonra aşağısında, tam değişmezin yeniden atanmasına izin vermez – aşağıya bakın. Ancak, tek tek karakterler yeniden atanabilir – aşağıya bakın.

Karakter veya Değişmez Olarak Tek ve Çift Alıntı

Karakter olarak tek bir alıntı yapmak için şöyle bir şey yapın:

karakterkimlik= ' '';

Bir dize değişmezinde karakter olarak çift alıntı yapmak için, şöyle bir şey yapın:

karakterkimlik[] = 'uzak'CD';

Ters eğik çizgi, sınırlayıcılarla çakışmayı önlemek için bir kaçış dizisinde kullanılır. Bir karakter olarak çift alıntı yapmak için ters eğik çizgiye gerek yoktur: 'Tamamdır. Bir dize değişmezinde tek bir alıntıya sahip olmak için ters eğik çizgiye gerek yoktur:ab'cd tamamdır.

Ters eğik çizgi bir karakterden kaçmak için kullanıldığından, karakter olarak veya bir dize değişmezinde kullanıldığında başka bir ters eğik çizgi ile kaçması gerekir.

Kaçış dizisi

Bir kaçış dizisi şunlardan biridir:

''? \ ile B F >T v

Her kaçış dizisi normalde ya tek tırnak içinde bir karakter olarak ya da çift tırnak içinde bir kaçış dizisi olarak yazılır.

  • ' : tek tırnak içinde tek tırnak karakteri olarak kullanılır.
  • : bir hazır bilgi içinde çift tırnak karakteri olarak kullanılır.
  • ? : dan beri ? ayrılmış bir karakterse, değişmez olarak kaçılmalıdır.
  • \ : ters eğik çizgi, başka bir anlamla sonuçlanmamak için bir karakter olarak veya bir dize değişmezinde kaçılmalıdır.
  • a : karakter olarak veya bir dize değişmezi içinde kullanıldığında bir kez alarm zili çalar.
  •  : önceki karakteri çıkararak, bir dize değişmezi içinde ekranda bir geri alma olarak sonuçlanır.
  • f : karakter olarak veya bir hazır bilgi içinde kullanıldığında sonraki sayfanın yazıcıya beslenmesini sağlar.
  • : bir sonraki karakterin yazdırılacağı imleci döndürür, ancak geçerli satır içinde.
  • : işletim sistemine bağlı olarak imleci bir sonraki satırın başına veya sadece bir sonraki satıra döndürür.
  • : yatay bir sekme oluşturur.
  • v : dikey bir sekme oluşturur.

Karakterlerle İşlemler

birleştirme

Tanımda, iki dize değişmez değeri boşlukla aşağıdaki gibi birleştirilebilir:

karakterkimlik[] = 'ABC' 'def';
maliyet<<kimlik<< ' ';

Çıktı: abcdef . Bu tanım ikiden fazla değişmeze genişletilebilir. Not: ifade sadece bir atama değil, bir tanımdır. Tanım, satırları aşağıdaki gibi ayırarak bir sonraki satıra bile devam edebilir:

karakterkimlik[] = 'ABC' 'def'
'not al';
maliyet<<kimlik<< ' ';

Çıktı, abcdefghi'dir.

Not: Karakterler için tek tırnak işaretleri birden fazla sembol içeremeyeceğinden, karakterler bu şekilde birleştirilemez.

Eşitlik Operatörleri

Aynı durumda aynı karakterler eşittir. Aynı durumda değillerse eşit değildirler. Düşünmek,

bool sonucu= 'B' == 'B';
maliyet<<sonuç<< ' ';

== eşittir, = ise atanan ve eşit olmayan anlamına gelir. Çıktı true için 1'dir. Düşünmek,

bool sonucu= 'B' == 'B';
maliyet<<sonuç<< ' ';

Çıktı false için 0'dır. Düşünmek,

bool sonucu= 'B' == 'C';
maliyet<<sonuç<< ' ';

Çıktı false için 0'dır. Düşünmek,

bool sonucu= 'B' ! = 'B';
maliyet<<sonuç<< ' ';

!= eşit olmayan anlamına gelirken = atanan ve eşit olmayan anlamına gelir. Çıktı false için 0'dır. Düşünmek,

bool sonucu= 'B' ! = 'B';
maliyet<<sonuç<< ' ';

Çıktı true için 1'dir. Düşünmek,

bool sonucu= 'B' ! = 'C';
maliyet<<sonuç<< ' ';

Çıktı true için 1'dir.

Yani, == ve != eşitlik operatörleridir.

İlişkisel Operatörler

C++'daki sıradan karakterler için, artan sırada sayılar küçük harflerden önce gelen büyük harflerden önce gelir.

Yani= benzer şekilde açıklanmıştır.

Bir Nesne Olarak Dize Değişmezi

Dizi, belirli bir veri türü dizisinin başlangıcına yönelik sabit bir işaretçidir. Benzer şekilde, dize, bir karakter dizisinin başlangıcına yönelik sabit bir işaretçidir. Aşağıdaki tanımları karşılaştırın:

intvarış[] = {3, 4, 5, 6, 7};
karakterP[] = {'içinde', 'veya', 'm', 'ile', 'n'};
karakterçizgi[] = 'Kadın';

İlk dizi bir int dizisidir ve beş öğesi vardır. İkinci ve üçüncü diziler, farklı adlara sahip ancak aynı sayıda öğeye sahip karakter dizileridir. İkinci ve üçüncü diziler aynıdır, ancak adları için. İkinci dizinin metin içeriği parantez ile sınırlandırılmıştır; karakterler virgülle ayrılır ve her karakter tek tırnak içindedir. Üçüncü dizinin metin içeriği çift tırnak ile sınırlandırılmıştır; karakterler virgülle ayrılmamıştır ve her karakter tek tırnak içinde değildir. İkinci ve üçüncü diziler, bir dizi üretmenin iki yoludur, üçüncü yol daha iyi yoldur.

arr, dizisinin ilk öğesinin sabit bir göstergesidir, yani arr, 3'ün değeri değiştirilse bile, her zaman 3 tamsayısına sahip konumu gösterir. Dizinin boyutu, beş eleman, gerçekten sabit kalmaz. Ancak, dizinin her bir değeri değiştirilebilir.

str, dizisinin ilk öğesinin sabit bir göstergesidir, yani str, 'w' değeri değiştirilse bile, her zaman 'w' karakterine sahip konumu gösterir. Beş elemanlı karakter dizisinin boyutu gerçekten sabit kalmaz. Ancak, değişmezin değerlerinin her biri değiştirilebilir.

stri, değişmezinin (dizinin) ilk öğesinin sabit bir göstergesidir, yani stri, w'nin değeri değişse bile, her zaman w karakterine sahip konumu gösterir. Beş elemanlı dize değişmezinin (dizinin) boyutu gerçekten sabit kalmaz. Ancak, değişmezin değerlerinin her biri değiştirilebilir.

Bir dizide veya dize değişmezinde sabit nedir? Dizinin veya değişmezin ilk öğesinin bellek adresi, dizinin veya değişmezin adının (tanımlayıcı) değeri olarak kalır ve değiştirilemez. Peki, dizinin veya değişmezin boyutu gerçekten sabit kalmıyor. Dizideki veya hazır bilgideki her değer değiştirilebilir. Aşağıdaki kod, dizilerin her birinin dördüncü öğesinin nasıl değiştirildiğini gösterir:

intvarış[] = {3, 4, 5, 6, 7};
karakterP[] = {'içinde', 'veya', 'm', 'ile', 'n'};
karakterçizgi[] = 'Kadın';

varış[3] = 9;
P[3] = 'Ve';
çizgi[3] = 'Ve';

maliyet<<varış[3] << ' ';
maliyet<<P<< ' ';
maliyet<<çizgi<< ' ';

Çıktı:

9
Kadınlar kadınlar
Kadınlar

Yukarıdaki üçüncü tanımda olduğu gibi, tanımlanmış bir dize değişmezinin öğelerine dizi dizini (alt simge) ile erişilebileceğini unutmayın. Çıktının ikinci satırının nedeni aşağıda verilmiştir.

Tanım Alt Simgesi

Yukarıdaki tanımlarda, indis için tamsayı olmadığına dikkat edin. Elemanların sayısı programcı tarafından kolayca belirlenemediğinde, indis için tamsayı atlanmalıdır. Durum ne olursa olsun, tamsayı dizideki eleman sayısından az olmamalıdır.

Dize değişmezi için tamsayı, dizedeki karakter sayısından en az 1 büyük olmalıdır. Bunun nedeni, boş karakterin () her zaman derleyici tarafından çift tırnakla ayrılmış bir dize olan dizinin sonuna eklenmesidir. Boş karakter, resmi bir dize olmadığı için yukarıdaki ikinci dizinin sonuna eklenmez. Üçüncü dizi resmi bir dizedir. Aşağıdaki kod, minimum alt simge değerlerini gösterir.

intvarış[5] = {3, 4, 5, 6, 7};
karakterP[5] = {'içinde', 'veya', 'm', 'ile', 'n'};
karakterçizgi[6] = 'Kadın';

İkinci tanımı resmi bir dizge yapmak için boş karakterin aşağıdaki gibi eklenmesi gerekir:

intvarış[5] = {3, 4, 5, 6, 7};
karakterP[6] = {'içinde', 'veya', 'm', 'ile', 'n', ' 0'};
karakterçizgi[6] = 'Kadın';

Çıktı şimdi olmalıdır,

9
Kadınlar
Kadınlar

ikinci kadın olmadan. İkinci dizi için karşılık gelen alt simgenin olduğu gibi 5 değil 6 olduğuna dikkat edin.

Sabit Değişmez Değerler

Bir tanımlayıcıya atanan çift tırnak içindeki herhangi bir karakterin değiştirilmesini durdurmak için, programın daha sonra aşağısında, aşağıdaki gibi ayrılmış kelime olan const tanımın önüne gelin:

const karakterkimlik[] = 'Seni seviyorum';

Dize Değişmezleri ile İşlemler

Eşitlik İşlemleri

Eşitlik operatörleri == ve != . İki dizenin değişkenleri (tanımlayıcıları) karşılaştırıldığında, karşılaştırılan, değişmezlerin işaretçileridir (adresleri); bu yanlış. Dizeleri karşılaştırmak için, aşağıdaki kodda olduğu gibi değişmez değerlerin karşılaştırılması gerekir:

bool sonucu= 'Kadın' == 'Kadın';
maliyet<<sonuç<< ' ';

Çıktı true için 1'dir. Karşılaştırma sözlük tarzında yapılır, ancak sayılar artan sırada, küçük harflerden önce gelen büyük harflerden önce gelir. Aşağıdaki kodun çıktısı false için 0'dır.

bool sonucu= 'Kadın' ! = 'Kadın';
maliyet<<sonuç<< ' ';

Dize Değişmezlerine Sahip İlişkisel Operatörler

İlişkisel işleçler, dize değişmezleriyle çalışmaz.

Ham Dize Değişmezi

Ham dize değişmezi, kaçış dizilerini yok sayarak ve yeni satırlara saygı duyarak bir dizenin yazıldığı gibi görüntülenmesine izin verir. Aşağıdaki kodu göz önünde bulundurun:

karakterP[] =r'(ABC\d efg o
klmn '
'opq
ilk)';
maliyet<< str << '
';

Çıktı:

abc\d efg o
kmn n'' opq
ilk

Kodda, ham dize değişmezi R ile başlar, ardından ve ( . İle biter) ve ile biter.

C++ Ana Dize Değişmez Türleri

karakter

Char tipi orijinal C++ tipidir ve tipik olarak 8 bitlik bir karakter saklar.

karakter16_t

Bu, bir karakteri 16 bitte saklar.

char32_t

Bu, bir karakteri 32 bit olarak saklar.

wchar_t

char16_t ve char32_t geniş karakterlerdir. wchar_t, tescilli ve uygulama tanımlı geniş bir karakterdir.

Çözüm

Karakter değişmezi, tek tırnak içindeki tek bir karakterdir. Bir kaçış dizisi, tek tırnak içinde de olabilen bir karakterdir. Bir dize değişmezi, çift tırnak içindeki bir karakter dizisidir. Bir dize değişmezi, ile biten bir karakter dizisidir. Eşitlik ve ilişkisel operatörler, karakter değişmezleri ile çalışır. Eşitlik işleçleri dize değişmezleriyle çalışır, ancak ilişkisel işleçler dize değişmezleriyle çalışmaz. Karşılaştırmalarda karakter tanımlayıcıları kullanılabilir, ancak karşılaştırmalarda dize tanımlayıcıları kullanılmamalıdır. Ham dize değişmez değeri, kaçış dizilerini yok sayarak ve yeni satırlara saygı duyarak bir dizenin yazıldığı gibi görüntülenmesine izin verir.

Chrys