Programowanie funkcjonalne - ciągi znaków

ZA stringto grupa znaków ze spacjami. Można powiedzieć, że jest to jednowymiarowa tablica znaków zakończona znakiem NULL („\ 0”). Łańcuch może być również traktowany jako predefiniowana klasa, która jest obsługiwana przez większość języków programowania, takich jak C, C ++, Java, PHP, Erlang, Haskell, Lisp itp.

Poniższy obraz pokazuje, jak ciąg „Tutorial” będzie wyglądał w pamięci.

Utwórz ciąg w C ++

Poniższy program jest przykładem, który pokazuje, jak utworzyć ciąg w C ++, który jest językiem programowania zorientowanym obiektowo.

#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; 
}

Wytworzy następujący wynik -

Today is: Holiday

String w Erlang

Poniższy program jest przykładem, który pokazuje, jak utworzyć ciąg w Erlang, który jest funkcjonalnym językiem programowania.

-module(helloworld).  
-export([start/0]).   
start() -> 
   Str = "Today is: Holiday",  
   io:fwrite("~p~n",[Str]).

Wytworzy następujący wynik -

"Today is: Holiday"

Operacje na ciągach znaków w C ++

Różne języki programowania obsługują różne metody na łańcuchach. W poniższej tabeli przedstawiono kilka wstępnie zdefiniowanych metod ciągów obsługiwanych przez C ++.

S.No. Metoda i opis
1

Strcpy(s1,s2)

Kopiuje ciąg s2 do łańcucha s1

2

Strcat(s1,s2)

Dodaje ciąg s2 na końcu s1

3

Strlen(s1)

Zapewnia długość łańcucha s1

4

Strcmp(s1,s2)

Zwraca 0, gdy ciąg s1 i s2 są takie same

5

Strchr(s1,ch)

Zwraca wskaźnik do pierwszego wystąpienia znaku ch w ciągu s1

6

Strstr(s1,s2)

Zwraca wskaźnik do pierwszego wystąpienia ciągu s2 w ciągu s1

Poniższy program pokazuje, jak powyższe metody mogą być używane w C ++ -

#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; 
}

Wytworzy następujący wynik -

strcpy(str3, str1)   :  Today is 
strcat(str1, str2)   :  Today is Monday 
strlen(str1)         :  15

Operacje na łańcuchach w Erlangu

W poniższej tabeli przedstawiono listę wstępnie zdefiniowanych metod ciągów obsługiwanych przez Erlang.

S.No. Metoda i opis
1

len(s1)

Zwraca liczbę znaków w podanym ciągu.

2

equal(s1,s2)

Zwraca prawdę, gdy ciąg s1 i s2 są równe, w przeciwnym razie zwraca fałsz

3

concat(s1,s2)

Dodaje ciąg s2 na końcu łańcucha s1

4

str(s1,ch)

Zwraca pozycję indeksu znaku ch w łańcuchu s1

5

str (s1,s2)

Zwraca pozycję indeksu s2 w ciągu s1

6

substr(s1,s2,num)

Ta metoda zwraca ciąg s2 z ciągu s1 na podstawie pozycji początkowej i liczby znaków z pozycji początkowej

7

to_lower(s1)

Ta metoda zwraca ciąg małymi literami

Poniższy program pokazuje, jak powyższe metody mogą być użyte w Erlang.

-module(helloworld).  
-import(string,[concat/2]).  
-export([start/0]).  
   start() ->  
   S1 = "Today is ",  
   S2 = "Monday",  
   S3 = concat(S1,S2),  
   io:fwrite("~p~n",[S3]).

Wytworzy następujący wynik -

"Today is Monday"