Lập trình chức năng - Chuỗi

A stringlà một nhóm các ký tự bao gồm khoảng trắng. Có thể nói nó là một mảng một chiều các ký tự được kết thúc bởi một ký tự NULL ('\ 0'). Một chuỗi cũng có thể được coi là một lớp được xác định trước được hỗ trợ bởi hầu hết các ngôn ngữ lập trình như C, C ++, Java, PHP, Erlang, Haskell, Lisp, v.v.

Hình ảnh sau đây cho thấy chuỗi "Hướng dẫn" sẽ trông như thế nào trong bộ nhớ.

Tạo một chuỗi trong C ++

Chương trình sau đây là một ví dụ cho thấy cách tạo một chuỗi trong C ++, là một ngôn ngữ lập trình hướng đối tượng.

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

Nó sẽ tạo ra kết quả sau:

Today is: Holiday

Chuỗi trong Erlang

Chương trình sau đây là một ví dụ cho thấy cách tạo một chuỗi trong Erlang, là một ngôn ngữ lập trình chức năng.

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

Nó sẽ tạo ra kết quả sau:

"Today is: Holiday"

Hoạt động chuỗi trong C ++

Các ngôn ngữ lập trình khác nhau hỗ trợ các phương thức khác nhau trên chuỗi. Bảng sau đây cho thấy một vài phương thức chuỗi được xác định trước được hỗ trợ bởi C ++.

Không. Phương pháp & Mô tả
1

Strcpy(s1,s2)

Nó sao chép chuỗi s2 thành chuỗi s1

2

Strcat(s1,s2)

Nó thêm chuỗi s2 vào cuối s1

3

Strlen(s1)

Nó cung cấp độ dài của chuỗi s1

4

Strcmp(s1,s2)

Nó trả về 0 khi chuỗi s1 & s2 giống nhau

5

Strchr(s1,ch)

Nó trả về một con trỏ đến lần xuất hiện đầu tiên của ký tự ch trong chuỗi s1

6

Strstr(s1,s2)

Nó trả về một con trỏ đến lần xuất hiện đầu tiên của chuỗi s2 trong chuỗi s1

Chương trình sau đây cho thấy cách các phương thức trên có thể được sử dụng trong 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; 
}

Nó sẽ tạo ra kết quả sau:

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

Hoạt động chuỗi trong Erlang

Bảng sau đây hiển thị danh sách các phương thức chuỗi được xác định trước được hỗ trợ bởi Erlang.

Không. Phương pháp & Mô tả
1

len(s1)

Trả về số ký tự trong chuỗi đã cho.

2

equal(s1,s2)

Nó trả về true khi chuỗi s1 & s2 bằng nhau, ngược lại trả về false

3

concat(s1,s2)

Nó thêm chuỗi s2 vào cuối chuỗi s1

4

str(s1,ch)

Nó trả về vị trí chỉ mục của ký tự ch trong chuỗi s1

5

str (s1,s2)

Nó trả về vị trí chỉ mục của s2 trong chuỗi s1

6

substr(s1,s2,num)

Phương thức này trả về chuỗi s2 từ chuỗi s1 dựa trên vị trí bắt đầu và số ký tự từ vị trí bắt đầu

7

to_lower(s1)

Phương thức này trả về chuỗi bằng chữ thường

Chương trình sau đây cho thấy các phương pháp trên có thể được sử dụng như thế nào trong 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]).

Nó sẽ tạo ra kết quả sau:

"Today is Monday"