Programação Funcional - Strings
UMA stringé um grupo de personagens incluindo espaços. Podemos dizer que é uma matriz unidimensional de caracteres que termina com um caractere NULL ('\ 0'). Uma string também pode ser considerada como uma classe predefinida que é suportada pela maioria das linguagens de programação, como C, C ++, Java, PHP, Erlang, Haskell, Lisp, etc.
A imagem a seguir mostra como a string "Tutorial" ficará na memória.
Crie uma string em C ++
O programa a seguir é um exemplo que mostra como criar uma string em C ++, que é uma linguagem de programação orientada 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;
}
Ele produzirá a seguinte saída -
Today is: Holiday
String em Erlang
O programa a seguir é um exemplo que mostra como criar uma string em Erlang, que é uma linguagem de programação funcional.
-module(helloworld).
-export([start/0]).
start() ->
Str = "Today is: Holiday",
io:fwrite("~p~n",[Str]).
Ele produzirá a seguinte saída -
"Today is: Holiday"
Operações de string em C ++
Diferentes linguagens de programação oferecem suporte a diferentes métodos em strings. A tabela a seguir mostra alguns métodos de string predefinidos compatíveis com C ++.
S.No. | Método e Descrição |
---|---|
1 | Strcpy(s1,s2) Ele copia a string s2 para a string s1 |
2 | Strcat(s1,s2) Ele adiciona a string s2 no final de s1 |
3 | Strlen(s1) Ele fornece o comprimento da string s1 |
4 | Strcmp(s1,s2) Ele retorna 0 quando as strings s1 e s2 são iguais |
5 | Strchr(s1,ch) Ele retorna um ponteiro para a primeira ocorrência do caractere ch na string s1 |
6 | Strstr(s1,s2) Ele retorna um ponteiro para a primeira ocorrência da string s2 na string s1 |
O programa a seguir mostra como os métodos acima podem ser usados em 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;
}
Ele produzirá a seguinte saída -
strcpy(str3, str1) : Today is
strcat(str1, str2) : Today is Monday
strlen(str1) : 15
Operações de cordas em Erlang
A tabela a seguir mostra uma lista de métodos de string predefinidos com suporte por Erlang.
S.No. | Método e Descrição |
---|---|
1 | len(s1) Retorna o número de caracteres na string fornecida. |
2 | equal(s1,s2) Retorna verdadeiro quando a string s1 e s2 são iguais, caso contrário, retorna falso |
3 | concat(s1,s2) Ele adiciona a string s2 no final da string s1 |
4 | str(s1,ch) Ele retorna a posição do índice do caractere ch na string s1 |
5 | str (s1,s2) Ele retorna a posição do índice de s2 na string s1 |
6 | substr(s1,s2,num) Este método retorna a string s2 da string s1 com base na posição inicial e no número de caracteres da posição inicial |
7 | to_lower(s1) Este método retorna string em minúsculas |
O programa a seguir mostra como os métodos acima podem ser usados em 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]).
Ele produzirá a seguinte saída -
"Today is Monday"