C++字符串
C++提供了两种字符串的表示形式
- C风格字符串
- C++引入的string类型
1、延续C风格
字符串实际上是使用null字符\0终止的一维字符数组,因此字符数组大小比字符串的字符数多一个
声明和初始化创建一个字符串
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'}; cout<<strlen(site); //输出结果是6
或者也可写成
char site[] = "RUNOOB";
其实不需要把null字符放在末尾,C++编译时,会自动把 \0 放在字符串末尾
C/C++中常用来操作字符串的函数
函数 | 功能 |
strcpy(s1,s2) |
字符串s2赋值给s1 |
strcmp(s1,s2) | 比较s1,s2.s1==s2,则返回0,s1<s2,返回值小于0(s1的ASCII-s2ASCII值的差值),s1>s2返回值大于0 |
strcat(s1,s2) | 连接两个字符串,也可用 "+" 连接 |
strlen(s1) | 返回字符串s1的长度 |
strchr(s1,ch) strstr(s1,s2) |
返回一个指针,指向字符串s1中首先出现ch的位置 返回一个指针,指向字符串s1中s2第一次出现的位置 |
⚠️以上函数包含在C++中的<cstring>头文件中,包含在C的<string.h>文件中
char *strcat( char *dest, const char *src ); //使用方法举例
#include <iostream> #include<cstring> using namespace std; int main() { char s1[50] = "hello "; char s2[50]="world"; strcat(s1,s2); char* ch=strchr(s1,'e'); cout<<s1<<endl; cout<<*ch<<endl; return 0; }
运行结果
hello world
e
2、C++中的String类类型
C++标准库中string类类型,支持上述所有功能,并且增加了一些新功能(可参考官方文档)。string类型包含在头文件<string>中
#include <iostream> #include<string> using namespace std; int main() { string s1= "hello "; string s2="world"; string s3=""; cout<<s3.size()<<endl; //计算字符串的长度 s3=s1+s2; //“+”直接拼接字符串 cout<<s3<<endl; return 0; }
运行结果
0 hello world