Fonksiyonel Programlama - Dizeler
Bir stringboşluklar içeren bir karakter grubudur. NULL karakterle ('\ 0') sonlandırılan tek boyutlu bir karakter dizisi diyebiliriz. Bir dizge ayrıca C, C ++, Java, PHP, Erlang, Haskell, Lisp vb. Programlama dillerinin çoğu tarafından desteklenen önceden tanımlanmış bir sınıf olarak kabul edilebilir.
Aşağıdaki görüntü, "Eğitim" dizesinin bellekte nasıl görüneceğini göstermektedir.
C ++ 'da bir Dize Oluşturun
Aşağıdaki program, nesne yönelimli bir programlama dili olan C ++ 'da bir dizenin nasıl oluşturulacağını gösteren bir örnektir.
#include <iostream>
using namespace std;
int main () {
char greeting[20] = {'H', 'o', 'l', 'i', 'd', 'a', 'y', '\0'};
cout << "Today is: ";
cout << greeting << endl;
return 0;
}
Aşağıdaki çıktıyı üretecektir -
Today is: Holiday
Erlang dilinde dize
Aşağıdaki program, işlevsel bir programlama dili olan Erlang'da nasıl string oluşturulacağını gösteren bir örnektir.
-module(helloworld).
-export([start/0]).
start() ->
Str = "Today is: Holiday",
io:fwrite("~p~n",[Str]).
Aşağıdaki çıktıyı üretecektir -
"Today is: Holiday"
C ++ 'da Dize İşlemleri
Farklı programlama dilleri dizelerde farklı yöntemleri destekler. Aşağıdaki tablo, C ++ tarafından desteklenen önceden tanımlanmış birkaç dize yöntemini gösterir.
S.No. | Yöntem ve Açıklama |
---|---|
1 | Strcpy(s1,s2) S2 dizesini s1 dizesine kopyalar |
2 | Strcat(s1,s2) S1'in sonuna s2 dizgesini ekler |
3 | Strlen(s1) S1 dizesinin uzunluğunu sağlar |
4 | Strcmp(s1,s2) S1 ve s2 dizeleri aynı olduğunda 0 döndürür |
5 | Strchr(s1,ch) S1 dizesinde ch karakterinin ilk oluşumuna bir gösterici döndürür. |
6 | Strstr(s1,s2) S1 dizgesinde s2 dizgesinin ilk oluşumuna bir gösterici döndürür. |
Aşağıdaki program, yukarıdaki yöntemlerin C ++ 'da nasıl kullanılabileceğini gösterir -
#include <iostream>
#include <cstring>
using namespace std;
int main () {
char str1[20] = "Today is ";
char str2[20] = "Monday";
char str3[20];
int len ;
strcpy( str3, str1); // copy str1 into str3
cout << "strcpy( str3, str1) : " << str3 << endl;
strcat( str1, str2); // concatenates str1 and str2
cout << "strcat( str1, str2): " << str1 << endl;
len = strlen(str1); // String length after concatenation
cout << "strlen(str1) : " << len << endl;
return 0;
}
Aşağıdaki çıktıyı üretecektir -
strcpy(str3, str1) : Today is
strcat(str1, str2) : Today is Monday
strlen(str1) : 15
Erlang'da String İşlemleri
Aşağıdaki tablo, Erlang tarafından desteklenen önceden tanımlanmış dize yöntemlerinin bir listesini gösterir.
S.No. | Yöntem ve Açıklama |
---|---|
1 | len(s1) Verilen dizedeki karakter sayısını döndürür. |
2 | equal(s1,s2) S1 ve s2 dizgeleri eşit olduğunda doğru döndürür, aksi takdirde yanlış döndürür |
3 | concat(s1,s2) S1 dizesinin sonuna s2 ekler |
4 | str(s1,ch) S1 dizesindeki ch karakterinin dizin konumunu döndürür |
5 | str (s1,s2) S1 dizesindeki s2'nin dizin konumunu döndürür |
6 | substr(s1,s2,num) Bu yöntem, başlangıç konumuna ve başlangıç konumundan karakter sayısına bağlı olarak s1 dizesinden s2 dizesini döndürür |
7 | to_lower(s1) Bu yöntem dizeyi küçük harflerle döndürür |
Aşağıdaki program, yukarıdaki yöntemlerin Erlang'da nasıl kullanılabileceğini göstermektedir.
-module(helloworld).
-import(string,[concat/2]).
-export([start/0]).
start() ->
S1 = "Today is ",
S2 = "Monday",
S3 = concat(S1,S2),
io:fwrite("~p~n",[S3]).
Aşağıdaki çıktıyı üretecektir -
"Today is Monday"