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"