C++語言爲程序設計者提供了一些能夠很是方便地處理字符數組的函數。這些函數能夠完成字符數組的複製、鏈接、比較以及查找等操做。c++
在數組聲明時,C++會自動產生一個指向該數組第一個數據元素的指針。當使用數組的名字時,其實是在使用一個指向該數組的指針。數組
下面是一些C++中提供的字符串數組函數,給出了它們的原型和調用語句,這些函數的輸入都是一個字符指針(char*)。app
函數原型 void strcat(char *dest, char *src);函數
功能:將字符串src鏈接到字符串dest後面。spa
例子:設計
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」