C++语言为程序设计者提供了一些可以非常方便地处理字符数组的函数。这些函数可以完成字符数组的复制、连接、比较以及查找等操作。
在数组声明时,C++会自动产生一个指向该数组第一个数据元素的指针。当使用数组的名字时,实际上是在使用一个指向该数组的指针。
下面是一些C++中提供的字符串数组函数,给出了它们的原型和调用语句,这些函数的输入都是一个字符指针(char*)。
函数原型 void strcat(char *dest, char *src);
功能:将字符串src连接到字符串dest后面。
例子:
char s1[30]="I love C++ ";
char s2[10]="very much!";
strcat(s1,s2);
s1中的数据是“I love C++ very much”
函数原型 void strcpy(char *dest, char *src);
功能:将字符串src复制到dest中。
例子:
char s1[30];
char s2[30]="I love C++ ";
strcpy(s1,s2);
s1中的数据是“I love C++ "
函数原型 int strcmp(char *s1,char *s2);
功能:比较s1和s2,如果相等则返回0,如果s1s2则返回正值。经常在用if和while语句中,或用于对单词进行排序(按字母排序)
例子:
char s1[15]="apple";
char s2[15]="banana"
if(strcmp(s1,"apple"))==0; //检查s1是不是apple
if(strcmp(s1,s2)<0); //但s1在字母表中位于s2之前时,返回true
函数原型 char *strstr(char*,char*);
功能:返回一个指向s1中第一次出现s2处的指针,如果s1中不含有s2,则返回NULL
例子:
char s1[50]="the rain in spain is mainly on the plan.";
char s2[10]="elephant";
char s3[10]="rain";
char *char_ptr;
char_ptr=strstr(s1,s2); //由于s1中没有elephant,char_ptr为NULL
char_ptr=strstr(s1,s3); //char_ptr为r在内存中的地址
函数原型 int strlen(char*)
功能:返回字符串的长度,不包括null字符
例子:
int length;
char s1[25]="i love c++!";
length=strlen(s1); //长度为11
函数原型 char *strncpy(char *dest,char *src,int n)
功能:从src向dest复制字符
例子:
char s1[10]="abcdef"
strncpy(s1,"ABC",3); //s1的值为“ABCdef”