Функциональное программирование - строки
А stringэто группа символов, включая пробелы. Можно сказать, что это одномерный массив символов, заканчивающийся символом NULL ('\ 0'). Строку также можно рассматривать как предопределенный класс, который поддерживается большинством языков программирования, таких как C, C ++, Java, PHP, Erlang, Haskell, Lisp и т. Д.
На следующем изображении показано, как строка «Учебник» будет выглядеть в памяти.
Создать строку в C ++
Следующая программа представляет собой пример, показывающий, как создать строку на C ++, который является объектно-ориентированным языком программирования.
#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;
}
Он выдаст следующий результат -
Today is: Holiday
Строка в Эрланге
Следующая программа представляет собой пример, показывающий, как создать строку в Erlang, который является функциональным языком программирования.
-module(helloworld).
-export([start/0]).
start() ->
Str = "Today is: Holiday",
io:fwrite("~p~n",[Str]).
Он выдаст следующий результат -
"Today is: Holiday"
Строковые операции в C ++
Разные языки программирования поддерживают разные методы для строк. В следующей таблице показано несколько предопределенных строковых методов, поддерживаемых C ++.
S.No. | Метод и описание |
---|---|
1 | Strcpy(s1,s2) Копирует строку s2 в строку s1 |
2 | Strcat(s1,s2) Он добавляет строку s2 в конец s1 |
3 | Strlen(s1) Предоставляет длину строки s1 |
4 | Strcmp(s1,s2) Возвращает 0, если строки s1 и s2 совпадают |
5 | Strchr(s1,ch) Возвращает указатель на первое вхождение символа ch в строке s1. |
6 | Strstr(s1,s2) Он возвращает указатель на первое вхождение строки s2 в строку s1. |
Следующая программа показывает, как вышеуказанные методы могут использоваться в 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;
}
Он выдаст следующий результат -
strcpy(str3, str1) : Today is
strcat(str1, str2) : Today is Monday
strlen(str1) : 15
Строковые операции в Erlang
В следующей таблице показан список стандартных строковых методов, поддерживаемых Erlang.
S.No. | Метод и описание |
---|---|
1 | len(s1) Возвращает количество символов в заданной строке. |
2 | equal(s1,s2) Он возвращает истину, когда строки s1 и s2 равны, иначе возвращает ложь |
3 | concat(s1,s2) Он добавляет строку s2 в конец строки s1 |
4 | str(s1,ch) Возвращает позицию индекса символа ch в строке s1 |
5 | str (s1,s2) Возвращает позицию индекса s2 в строке s1 |
6 | substr(s1,s2,num) Этот метод возвращает строку s2 из строки s1 на основе начальной позиции и количества символов от начальной позиции. |
7 | to_lower(s1) Этот метод возвращает строку в нижнем регистре |
Следующая программа показывает, как вышеуказанные методы можно использовать в 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]).
Он выдаст следующий результат -
"Today is Monday"