文档详情

第6章数组﹒指针与字符串.ppt

发布:2017-05-07约2.46万字共112页下载文档
文本预览下载声明
例2:输出数组并对数组元素求和 #define SIZE 10 #include iostream.h? int main( ) { int n[SIZE] = { 12, 34, 55, 71, 1, 65, 423, 19, 540, 10 }; int i , sum = 0;? for ( i = 0; i = SIZE - 1; i++ ) { cout n[ i ] = n[ i ] endl; sum += n[ i ]; }? cout The summary is: sum endl; return 0; } 程序执行结果: n[0] = 12 n[1] = 34 n[2] = 55 n[3] = 71 n[4] = 1 n[5] = 65 n[6] = 423 n[7] = 19 n[8] = 540 n[9] = 10 The summary is: 1230 赋初值省略第一维的大小 int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 等价于: int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 在定义时也可以只对部分元素赋初值而省略第一维的大小,但应分行赋初值。如 int a[ ][4]={{0,1},{ },{1,0,1}}; 这样的写法,能通知编译系统,数组共有3行。 数组各元素为: 指针型函数 当函数的返回值是指针类型时,该函数就是指针型函数。 语法形式: 数据类型 *函数名(形参表) { 函数体 } 例如: float * fun(int a) { … } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 用字符数组表示字符串的缺点 用字符数组表示字符串的缺点 执行连接、拷贝、比较等操作,都需要显式调用库函数,很麻烦 当字符串长度很不确定时,需要用new动态创建字符数组,最后要用delete释放,很繁琐 字符串实际长度大于为它分配的空间时,会产生数组下标越界的错误 解决方法 使用字符串类string表示字符串 string实际上是对字符数组操作的封装 * 字符串 string的用法(1) 常用构造函数 string(); //缺省构造函数,建立一个长度为0的串 string(const char *s); //用指针s所指向的字符串常量初始化string类的对象 string(const string rhs); //拷贝构造函数 例: string s1; //建立一个空字符串 string s2 = “abc”; //用常量建立一个初值为”abc”的字符串 string s3 = s2; //执行拷贝构造函数,用s2的值作为s3的初值 * 字符串 string的用法(2) 常用操作符 s + t 将串s和t连接成一个新串 s = t 用t更新s s == t 判断s与t是否相等 s != t 判断s与t是否不等 s t 判断s是否小于t(按字典顺序比较) s = t 判断s是否小于或等于t (按字典顺序比较) s t 判断s是否大于t (按字典顺序比较) s = t 判断s是否大于或等于t (按字典顺序比较) s[i] 访问串中下标为i的字符 例: string s1 = “abc”, s2 = “def”; string s3 = s1 + s2; //结果是”abcdef” bool s4 = (s1 s2); //结果是true char s5 = s2[1]; //结果是’e’ * 字符串 * 例6.23 string类应用举例 #include string #include iostream using namespace std; //根据value的值输出true或false,title为提示文字 inline void test(const char *title, bool value) { cout title returns (value ? true : false) endl
显示全部
相似文档