字符串常量
- 1.各字符连续、顺序存放,每个字符占一个字节,以‘\0’结尾,相当于一个隐含创建的字符常量数组
- 2.“program”出现在表达式中,表示这一char数组的首地址
- 3.首地址可以赋给char常量指针:
- 4.const char *S = "program";
-
字符串变量
-
可以显式创建字符数组来表示字符串变量,例如,以下三条语句具有等价的作用:
char str [8] = {'p', 'r', 'o', 'g', 'r', 'a', 'm', '\0'};
char str [8] = "program";
char str [] = "program";
-
二维字符型数组
-
Char a[5][10] :数组中有5个字符串,每个字符串有10个字符。
-
字符数组表示字符串的缺点:执行连接、拷贝、比较等操作,都需要显式调用库函数,很麻烦。当字符串长度很不确定时,需要用new动态创建字符数组,最后要用delete释放,很繁琐。字符串实际长度大于为它分配的空间时,会产生数组下标越界的错误
-
解决方法:使用字符串类string表示字符串。string实际上是对字符数组操作的封装
-
字符串函数
-
strcpy函数
- 格式: Strcpy(数组1,数组2)
- 功能: 将数组2的字符复制到数组1中
-
#include <iostream> #include <string> void main() { char a[10], b[]={"china"}; strcpy(a,b); cout<<a<<endl; }
strcat函数
- 格式: strcat(数组1,数组2)
- 功能: 连接两个数组,将数组2的字符连接到数组1中
-
#include <iostream> #include <string> void main() { char a[12]={"leaf"}; char b[6]={"apple"}; strcat(a,b); cout<<a<<endl; }
strlen函数
- 功能:测试字符串长度 (不包括空字符)
-
strupr函数
- 功能:将小写字母转换成大写字母。
-
string类
- 常用构造函数
- string(); //缺省构造函数,建立一个长度为0的串
- string(const char *s); //用指针s所指向的字符串常量初始化string类的对象
- string(const string& rhs); //拷贝构造函数
- 例: string s1; //建立一个空字符串
- string s2 = “abc”; //用常量建立一个初值为”abc”的字符串
- string s3 = s2; //执行拷贝构造函数,用s2的值作为s3的初值