Karakter dizesi
Programlamada , bir karakter dizisi , sözcükler , karakter dizisi veya tümcecik ( İngilizce'de dize ) , belirli bir biçimsel dile veya alfabeye ait , bir formüle veya bir formül. dua . Genel olarak, bir karakter dizisi bir dizi karakterdir ( harfler , sayılar veya diğer işaretler veya semboller ). Alfabeye herhangi bir kısıtlama getirilmezse, bir dize mevcut karakterlerin herhangi bir sonlu kombinasyonundan oluşabilir ('a' ile 'z' arasındaki harfler ve 'A' ile 'Z' arasındaki harfler, '0' ile '9 arasındaki rakamlar ', boşluk ' ', çeşitli semboller '!', '@', '%' vb.).
Aynı alanda, kelimeler, ifadeler veya diğer herhangi bir karakter dizisi için önceden tanımlanmış bir veri türü olarak yaygın olarak kullanılırlar. Bu durumda, bir veri vektöründe veya tek satırlı veri matrisinde (İngilizce olarak dizi ) depolanırlar. Dizeler fiziksel olarak saklanabilir:
- takip etti.
- Mektup harf bağlantılı.
Karakterler genellikle erişimde verimlilik için birbiri ardına saklanır.
Bir dizenin özel bir durumu, sıfır karakter içeren bir durumdur. Bu dize boş dize olarak adlandırılır ; otomata teorisinde , onu Yunan harfiyle temsil etmek yaygındır .
Dize işlemi
Dizeleri bir veri türü olarak değerlendirirken, onlarla hangi işlemleri yapabileceğinizi tanımlamanız gerekir. Prensip olarak, çok sayıda olabilir ve çok karmaşık hale gelebilir. Aşağıdakiler bunlardan bazılarıdır:
- Assignment : Bir stringin diğerine atanmasından oluşur.
- Birleştirme : Daha büyük bir dize oluşturmak için iki veya daha fazla dizenin (veya karakterli bir dizenin ) birleştirilmesinden oluşur.
- Arama : Bir dize içinde daha küçük bir alt dize veya karakter bulmaktan oluşur.
- Çıkarma : Zincirin içindeki konumuna göre zincirden bir kısmının çıkarılması meselesidir.
- Karşılaştırma : İki diziyi karşılaştırmak için kullanılır.
Temsil
Bir dize genellikle üstte çift tırnak ("kelime") ile gösterilirken, bu dizedeki bir karakter (bir char ) genellikle tek tırnak ('p') içinde gösterilir. Örneğin, C'de :
charAt c = 'a'; char str[5] = "merhaba";
Genel olarak, belirli bir konumdaki bir karaktere erişmek için, variable[posición]bir vektöre erişirken form kullanılır.
Dize içinde bir tırnak (") görüntülemek ve onu çevreleyen tırnaklarda sorun yaşamamak için kaçış dizileri kullanılır. Bu, satır başı gibi diğer ayrılmış veya yazdırılamayan karakterler için geçerlidir . Ancak bu kaçışları üreten ifadeler diziler, kullandığınız programlama diline bağlıdır. Birçok dilde, bir karakterden kaçmanın yaygın bir yolu, önüne "\" (tırnak işaretleri olmadan) eklemektir, örneğin: "\"" (tırnak işaretleri olmadan).
Dinamik ve statik dizeler
Dizeler doğası gereği dinamik (çalışma zamanında uzunluklarını değiştirebilirler) veya doğaları gereği statik (uzunlukları çalışma zamanında sabittir) olabilir. Bu ikinci durumda, programcı, zinciri geçerken indekslerin beklenen sınırların dışına çıkmayacağını tahmin etmelidir ( C , dizilerin otomatik olarak büyümesine açıkça izin vermezken, C# yapar).
Her iki durumda da dizenin sonu farklı şekilde sınırlandırılmıştır:
- Dinamik olarak yazılan dizeler için bir dize sonu karakteri ( C'de '\0' ) kullanma.
- Statik türden olanlar için uzunluğunu ( C#
lengthcinsinden ) sınırlayan dizenin bir özelliği aracılığıyla .
Genel işlem örnekleri
Ödev
Bir zinciri diğerine atayın.
char *strcpy(char [], const karakter[]); # C'de string1=string2; # C++' da string1 := string2 # Smalltalk'ta
Birleştirme
İki karakter dizisini birleştirin.
çift = "Joshua" + " ve " + "Marina" # Python'da $pair = "Joshua."" ve "."Marina" # Perl ve PHP'de çift = "Luisa" & " ve " & "Carmen" # Visual Basic çifti = "Luisa" + " ve " + "Carmen"; # String sınıfıyla C++ ve Java'da çifti := 'Louise' , ' ve ' , 'Carmen'. # Smalltalk'ta strcat(string3,string1); strcat(string2, string1); # C'de (İlkinde yeterli alan olmalıdır.)
Bir dizideki karakter sayısı
int strlen(const karakter[]); C'de # '\0' saymadan karakter sayısını verir IP uzunluğu(); # C++ dize boyutunda. # Smalltalk len(string)'de # Python'da
Karşılaştırma
İki dizeyi sözlük sırasına göre karşılaştırın .
int strcmp(const karakter[], const karakter[]); C'de # 1. sayı küçükse <0, büyükse > 0 ve eşitse 0 döndürür. dizi1 == dizi2; dizi1>dizi2; vb. C++' da # true değerini döndürür. string1 = string2 # in Smalltalk Doğru veya yanlış döndürür.
Bir dizeyi çarpın
Bir zinciri birkaç kez tekrarlayın.
$puan ="." x 5 # Perl'e 5 puan koyar . puan := Jeneratör createJoin: '.' tekrar et: 5. # Smalltalk'ta 5 noktadan oluşan bir dizi oluşturur . puan = "." * 5 # Python'da 5 noktadan oluşan bir dizi oluşturur .
Dış bağlantılar
- bir dize alıntılamak
- C Dilinde Dize İşlemleri 12 Ekim 2007'de Wayback Machine'de Arşivlendi .)