Programmazione funzionale - Stringhe

UN stringè un gruppo di caratteri inclusi gli spazi. Possiamo dire che è un array unidimensionale di caratteri che termina con un carattere NULL ('\ 0'). Una stringa può anche essere considerata come una classe predefinita supportata dalla maggior parte dei linguaggi di programmazione come C, C ++, Java, PHP, Erlang, Haskell, Lisp, ecc.

L'immagine seguente mostra come apparirà la stringa "Tutorial" nella memoria.

Crea una stringa in C ++

Il seguente programma è un esempio che mostra come creare una stringa in C ++, che è un linguaggio di programmazione orientato agli oggetti.

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

Produrrà il seguente output:

Today is: Holiday

Stringa in Erlang

Il seguente programma è un esempio che mostra come creare una stringa in Erlang, che è un linguaggio di programmazione funzionale.

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

Produrrà il seguente output:

"Today is: Holiday"

Operazioni su stringhe in C ++

Linguaggi di programmazione differenti supportano metodi differenti sulle stringhe. La tabella seguente mostra alcuni metodi stringa predefiniti supportati da C ++.

S.No. Metodo e descrizione
1

Strcpy(s1,s2)

Copia la stringa s2 nella stringa s1

2

Strcat(s1,s2)

Aggiunge la stringa s2 alla fine di s1

3

Strlen(s1)

Fornisce la lunghezza della stringa s1

4

Strcmp(s1,s2)

Restituisce 0 quando le stringhe s1 e s2 sono uguali

5

Strchr(s1,ch)

Restituisce un puntatore alla prima occorrenza del carattere ch nella stringa s1

6

Strstr(s1,s2)

Restituisce un puntatore alla prima occorrenza della stringa s2 nella stringa s1

Il seguente programma mostra come i metodi di cui sopra possono essere utilizzati in 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; 
}

Produrrà il seguente output:

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

Operazioni sulle stringhe a Erlang

La tabella seguente mostra un elenco di metodi stringa predefiniti supportati da Erlang.

S.No. Metodo e descrizione
1

len(s1)

Restituisce il numero di caratteri nella stringa data.

2

equal(s1,s2)

Restituisce vero quando le stringhe s1 e s2 sono uguali altrimenti restituiscono false

3

concat(s1,s2)

Aggiunge la stringa s2 alla fine della stringa s1

4

str(s1,ch)

Restituisce la posizione di indice del carattere ch nella stringa s1

5

str (s1,s2)

Restituisce la posizione di indice di s2 nella stringa s1

6

substr(s1,s2,num)

Questo metodo restituisce la stringa s2 dalla stringa s1 in base alla posizione iniziale e al numero di caratteri dalla posizione iniziale

7

to_lower(s1)

Questo metodo restituisce una stringa in minuscolo

Il seguente programma mostra come utilizzare i metodi di cui sopra in 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]).

Produrrà il seguente output:

"Today is Monday"