C++, 微軟雅黑, 黑體, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">為了處理字符串方便,C++++提供了很多字符串處理函數,使用這些函數需要包含cstring,如下形式

    #include<cstring>

   為了處理字符串方便,C++提供了很多字符串處理函數

下面具體介紹其中常用的函數。

1.int strlen(const char*s)(字符串長度函數)

求字符指針s所指字符串中第一個結束符’\0’前的字符個數。const表示不允許修改s所指的字符串。s可以是字符數組名稱。

例如:

char s[100]=HelloWorld!”;

char t[100]=12345\06789\0”;

cout<<strlen(s)<<endl;    //輸出12

cout<<strlen(t)<<endl;    //輸出5

2.char* strcpy(char*sl,constchar*s2)(字符串復制函數)

函數將字符串s2復制到字符串s1,并返回s1。很顯然,s1必須有足夠的空間來存儲復制過來的s2。例如:

char sl[20];

char s2[]=Goodluck”;

strcpy(s1,s2);

cout<<s1<<endl;    //輸出Good luck

strcpy函數可以將結束符一起復制過去,以上復制操作也可以直接寫成:

strcpy(s1,”Goodluck);

3.char* strcat(char*sl,constchar*s2)(字符串連接函數)

函數將字符串s2連接到字符串s1后面,并返回s1。很顯然,s1也必須有足夠的空間來

存儲由原來的s1和s2構成的新s1字符串。例如:

char sl[20]=Goodluck”;;

char s2[]=toyou!”;

strcpy(s1,s2);

cout<<sl<<endl;    //輸出Good luck to you!

連接后的s1的有效字符長度為17,包括結束符在內,sl至少需要18個字符長度,否則連接是錯誤的。

4.int strcmp(const char*sl,const char*s2)(字符串比較函數)

函數比較s1和s2字符串的大小,并返回比較的結果:

(1)若s1大于s2,則返回一個正整數。

(2)若sl等于s2,則返回0。

(3)若s1小于s2,則返回一個負整數。

字符串比較規則:自左向右按ASCII碼值大小進行比較,直至出現一對不同字符或者遇

到結束符為止。例如:

strcmp(ABC”,”abc)    //返回負整數,前面字符串小

strcmp(ABC,ABC\Oabc)    //返回0,二者相等,’\0’后面不是有效字符

strcmp(ABC”,”AB)  //返回正整數,前面的大,可以理解成’C’比’\O’大

strcmp(AB,ABC)  //返回負整數,前面的小,可以理解成’\0’比’C’小

可以根據比較結果來進行字符串排序操作。

5.char* strlwr(char*s)(字符串大寫變小寫)

將字符串s的所有大寫字母轉換成小寫字母。

6.Char* stmpr(char*S)(字符串小寫變大寫)   

將字符串s的所有小寫字母轉換成大寫字母。

除了上面的幾個函數以外,經常使用的還有:char* stmcpy(char*,constchar*,size_t)(指定字符個數的復制函數)、intstrcmp(const char*,const*char,size_t)(指定長度的比較函數)、char* strstr(const char*,const char*)(查找后面的字符串在前面字符串中的位置)和char* stmcat(char*,const char*,size_t)(指定字符個數的連接函數)。

5-12輸出幾個字符串中最大的串。

#include<iostream.h>   

#include<cstring>

int main()

{

    char s[5][50]={"HelloWorld!",

    "Good luck toyou!",

    "How are you?",

    "Moon River",

    "I love this book"};

    int max=0;

    for(int i=1;i<5;i++)

   if(strcmp(s[i],s[max])>0)max=i; //記錄最大串的位置即可

    cout<<"最大的字符串是:"<<s[max]<<endl;

    return 0;

}

程序運行結果:

最大的字符串是:Moon River

【例5-13】編寫程序刪除字符串中的指定字符。

#include<iostream.h>   

#include<cstring>

intmain()

{

    char s[100]="I love thisprogram.";

    char c;

    cout<<"請輸入要刪除的字符:";

    c=cin.get();

    int i,j;

    for(i=j=0;s[i]!='\0';i++)

                           {

       if(s[i]!=c)

                              {

          s[j]=s[i];

          j++;

                              }

                           }

    s[j]='\O';

    cout<<"刪除后的字符串為:"<<s<<endl;

    return 0;

}

程序運行結果:

請輸入要刪除的字符:o

刪除后的字符串為:I lve this program.0.