Programación funcional: cadenas

UN stringes un grupo de caracteres que incluye espacios. Podemos decir que es una matriz unidimensional de caracteres que termina con un carácter NULL ('\ 0'). Una cadena también se puede considerar como una clase predefinida que es compatible con la mayoría de los lenguajes de programación como C, C ++, Java, PHP, Erlang, Haskell, Lisp, etc.

La siguiente imagen muestra cómo se verá la cadena "Tutorial" en la memoria.

Crear una cadena en C ++

El siguiente programa es un ejemplo que muestra cómo crear una cadena en C ++, que es un lenguaje de programación orientado a objetos.

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

Producirá la siguiente salida:

Today is: Holiday

Cadena en Erlang

El siguiente programa es un ejemplo que muestra cómo crear una cadena en Erlang, que es un lenguaje de programación funcional.

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

Producirá la siguiente salida:

"Today is: Holiday"

Operaciones de cadena en C ++

Los diferentes lenguajes de programación admiten diferentes métodos en cadenas. La siguiente tabla muestra algunos métodos de cadena predefinidos compatibles con C ++.

S.No. Método y descripción
1

Strcpy(s1,s2)

Copia la cadena s2 en la cadena s1

2

Strcat(s1,s2)

Agrega la cadena s2 al final de s1

3

Strlen(s1)

Proporciona la longitud de la cadena s1

4

Strcmp(s1,s2)

Devuelve 0 cuando las cadenas s1 y s2 son iguales

5

Strchr(s1,ch)

Devuelve un puntero a la primera aparición del carácter ch en la cadena s1

6

Strstr(s1,s2)

Devuelve un puntero a la primera aparición de la cadena s2 en la cadena s1

El siguiente programa muestra cómo se pueden utilizar los métodos anteriores en 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; 
}

Producirá la siguiente salida:

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

Operaciones de cadena en Erlang

La siguiente tabla muestra una lista de métodos de cadena predefinidos compatibles con Erlang.

S.No. Método y descripción
1

len(s1)

Devuelve el número de caracteres de la cadena dada.

2

equal(s1,s2)

Devuelve verdadero cuando las cadenas s1 y s2 son iguales; de lo contrario, devuelve falso

3

concat(s1,s2)

Agrega la cadena s2 al final de la cadena s1

4

str(s1,ch)

Devuelve la posición de índice del carácter ch en la cadena s1

5

str (s1,s2)

Devuelve la posición del índice de s2 en la cadena s1

6

substr(s1,s2,num)

Este método devuelve la cadena s2 de la cadena s1 según la posición inicial y el número de caracteres desde la posición inicial

7

to_lower(s1)

Este método devuelve una cadena en minúsculas

El siguiente programa muestra cómo se pueden utilizar los métodos anteriores en 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]).

Producirá la siguiente salida:

"Today is Monday"