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(s1s2)

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(s1s2)

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.