📜  函数式编程-字符串

📅  最后修改于: 2021-01-07 05:18:23             🧑  作者: Mango


字符串是一组包含空格的字符。我们可以说这是一维字符数组,以NULL字符(’\ 0’)终止。字符串也可以视为预定义的类,大多数编程语言(例如C,C++,Java,PHP,Erlang,Haskell,Lisp等)都支持该字符串。

下图显示了字符串“ Tutorial”在内存中的外观。

弦乐

用C++创建一个字符串

下面的程序是一个示例,显示了如何使用C++创建字符串,C++是一种面向对象的编程语言。

#include  
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中的字符串

以下程序是一个示例,显示了如何在Erlang(一种功能编程语言)中创建字符串。

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

它将产生以下输出-

"Today is: Holiday" 

C++中的字符串运算

不同的编程语言在字符串上支持不同的方法。下表显示了C++支持的一些预定义的字符串方法。

S.No. Method & Description
1

Strcpy(s1,s2)

It copies the string s2 into string s1

2

Strcat(s1,s2)

It adds the string s2 at the end of s1

3

Strlen(s1)

It provides the length of the string s1

4

Strcmp(s1,s2)

It returns 0 when string s1 & s2 are same

5

Strchr(s1,ch)

It returns a pointer to the first occurrence of character ch in string s1

6

Strstr(s1,s2)

It returns a pointer to the first occurrence of string s2 in string s1

以下程序显示了如何在C++中使用上述方法-

#include  
#include  
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. Method & Description
1

len(s1)

Returns the number of characters in the given string.

2

equal(s1,s2)

It returns true when string s1 & s2 are equal else return false

3

concat(s1,s2)

It adds string s2 at the end of string s1

4

str(s1,ch)

It returns index position of character ch in string s1

5

str (s1,s2)

It returns index position of s2 in string s1

6

substr(s1,s2,num)

This method returns the string s2 from the string s1 based on the starting position & number of characters from the starting position

7

to_lower(s1)

This method returns string in lower case

以下程序显示了如何在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"