C++语言gx-第05章.ppt

上传人:za****8 文档编号:15798715 上传时间:2020-09-06 格式:PPT 页数:78 大小:409.02KB
返回 下载 相关 举报
C++语言gx-第05章.ppt_第1页
第1页 / 共78页
C++语言gx-第05章.ppt_第2页
第2页 / 共78页
C++语言gx-第05章.ppt_第3页
第3页 / 共78页
点击查看更多>>
资源描述
第5章 数组,5.1 数组的概念 5.2 一维数组的定义和引用 5.3 二维数组的定义和引用 5.4 用数组名作函数参数 5.5 字符数组 *5.6 C+处理字符串的方法字符串类与字符串变量,所谓数组就是一组具有相同数据类型的数据的有序集合。 数组是有序数据的集合。数组中的数据称为数组元素,通过数组名和下标惟一地标识一个数组中的一个元素。 同一数组中的每一个元素都必须属于同一数据类型。一个数组在内存中占一片连续的存储单元。,5.1 数组的概念,定义方式:数据类型 数组名常量表达式;,合法标识符,表示元素个数 下标从0开始, :数组运算符 单目运算符 优先级(1) 左结合,例 int a6;,编译时分配连续内存 内存字节数=数组维数* sizeof(元素数据类型),数组名表示内存首地址,是地址常量,5.2 一维数组的定义和引用 5.2.1 定义一维数组,(1) 用方括号括起来的常量表达式表示下标值,如下面的写法是合法的: int a10; int a2*5; int an*2; /假设前面已定义了n为常变量,(2) 常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。C+不允许对数组的大小作动态定义。例如,下面这样定义数组是不行的: int n; cinn; /输入a数组的长度 int an; /企图根据n的值决定数组的长度,数组必须先定义,然后使用。只能逐个引用数组元素的值而不能一次引用整个数组中的全部元素的值。 数组元素的表示形式为 数组名下标 下标可以是整型常量或整型表达式。例如 a0= a5+ a7- a2*3,5.2.2 引用一维数组的元素,例5.1 数组元素的引用。 #include using namespace std; int main( ) int i,a10; for (i=0;i=0;i-) coutai ; coutendl; return 0; 运行结果如下: 9 8 7 6 5 4 3 2 1 0 程序使a0a9的值为09,然后按逆序输出。,(1) 在定义数组时分别对数组元素赋予初值。例如 int a10=0,1,2,3,4,5,6,7,8,9; (2) 可以只给一部分元素赋值。例如 int a10=0,1,2,3,4; (3) 如果使一个数组中全部元素值为1,可以写成 int a10=1,1,1,1,1,1,1,1,1,1; 不能给数组整体赋初值。 (4) 在对全部数组元素赋初值时,可以不指定数组长度。例如 int a5=1,2,3,4,5; 可以写成 int a =1,2,3,4,5;,5.2.3 一维数组的初始化,例5.2 用数组来处理求Fibonacci数列问题。 可以用20个元素代表数列中的20个数,从第3个数开始,可以直接用表达式fi=fi-2+fi-1求出各数。 程序如下: #include #include using namespace std; int main( ) int i; int f20=1,1; /f0=1,f1=1,5.2.4 一维数组程序举例,for(i=2;i20;i+) fi=fi-2+fi-1; for(i=0;i20;i+) if(i%5= =0) coutendl; /每行输出5个数 coutfi“ ”; coutendl; /最后执行一次换行 return 0; ,例 读10个整数存入数组,找出其中最大值和最小值,#include #define SIZE 10 using namespace std; int main() int xSIZE,i,max,min; printf(Enter 10 integers:n); for(i=0;ixi; max=min=x0; for(i=1;ixi) min=xi; coutMaximum value is: maxendl; coutMinimum value is: minendl; ,例5.3 编写程序,用起泡法对10个数排序(按由小到大顺序)。 起泡法的思路是:将相邻两个数比较,将小的调到前头。,然后进行第2趟比较,对余下的前面5个数按上法进 行比较。,可以推知,如果有n个数,则要进行n-1趟比较(和交换)。在第1趟中要进行n-1次两两比较,在第j趟中要进行n-j次两两比较。 根据以上思路写出程序,本例定义数组长度为10, 设n=10,应该进行9趟比较和交换。 #include using namespace std; int main( ) int a10; int i,j,t; coutai;,coutai+1) /如果前面的数大于后面的数 t=ai;ai=ai+1;ai+1=t; coutthe sorted numbers :endl; for(i=0;i10;i+) /输出10个数 coutai ; coutendl; return 0; ,具有两个下标的数组称为二维数组。有些数据要依赖于两个因素才能惟一地确定,例如有3个学生,每个学生有4门课的成绩,显然,成绩数据是一个二维表。 想表示第3个学生第4门课的成绩,就需要指出学生的序号和课程的序号两个因素。,5.3 二维数组的定义和引用,5.3.1 二维数组的定义 定义方式: 数据类型数组名常量表达式常量表达式;,数组元素的存放顺序 原因:内存是一维的 二维数组:按行序优先 多维数组:最右下标变化最快,例 int a34; float b25; int c234; int a3,4; (),行数,列数,元素个数=行数*列数,上面定义的二维数组可以理解为定义了3个一维数组,把a0,a1,a2作一维数组名。C+的这种处理方法在数组初始化和用指针表示时显得很方便,这在以后会体会到。,C+对二维数组采用这样的定义方式,使我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组(一维数组的数组)。例如,int a34可以把a看作是一个一维数组,它有3个元素:a0,a1,a2,每个元素又是一个包含4个元素的一维数组,a0,a1,a2是3个一维数组的名字。,二维数组中的元素在内存中的排列顺序是:按行存放,即先顺序存放第一行的元素,再存放第二行的元素,一维数组在内存中的存放,下图表示对a34数组存放的顺序,多维数组:最右下标变化最快,定义二维数组的一般形式为 类型标识符 数组名常量表达式常量表达式 例如 float a23,b510; 定义a为23(2行3列)的单精度数组,b为510(5行10列)的单精度数组。注意不能写成“float a2,3,b5,10;”。,5.3.1 定义二维数组,二维数组的元素的表示形式为 数组名 下标下标 如a23。下标可以是整型表达式,如a2-12*2-1。不要写成a2,3,a2-1,2*2-1形式。 数组元素可以出现在表达式中,也可以被赋值,例如 b12=a23/2;,5.3.2 二维数组的引用,int a34; /定义3行4列的数组 a34=15; /引用a34元素 定义a为34的数组,它可用的行下标值最大为2,列坐标值最大为3。最多可以用到a23,a34就超过了数组的范围。 注意区分在定义数组时用的a34和引用元素时的a34的区别。前者a34用来定义数组的维数和各维的大小,后者a34中的3和4是下标值,a34代表某一个元素。,在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。常出现的错误是,可以用下面的方法对二维数组初始化: (1) 分行给二维数组赋初值。如 int a34=1,2,3,4, 5,6,7,8, 9,10,11,12; (2) 可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。如 int a34=1,2,3,4,5,6,7,8,9,10,11,12; 效果与前相同。但以第1种方法为好,一行对一行,界限清楚。用第2种方法如果数据多,写成一大片,容易遗漏,也不易检查。,5.3.3 二维数组的初始化,(3) 可以对部分元素赋初值。如 int a34=1,5,9; 它的作用是只对各行第1列的元素赋初值,其余元素值自动置为0。赋初值后数组各元素为 1 0 0 0 5 0 0 0 9 0 0 0 int a34=1,0,6,0,0,11; 初始化后的数组元素如下: 1 0 0 0 0 6 0 0 0 0 11 0,int a34=1,5,6; 数组元素为 1 0 0 0 5 6 0 0 0 0 0 0 也可以对第2行不赋初值: int a34=1,9; (4) 如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。如 int a34=1,2,3,4,5,6,7,8,9,10,11,12;,可以写成 int a4=1,2,3,4,5,6,7,8,9,10,11,12; 系统会根据数据总个数分配存储空间,一共12个数据,每行4列,当然可确定为3行。 在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。如 int a4=0,0,3,0,10; 这样的写法,能通知编译系统: 数组共有3行。数组各元素为 0 0 3 0 0 0 0 0 0 10 0 0,例5.4 将一个二维数组行和列元素互换,存到另一个二维数组中。例如 a=123 b=14 456 25 36,5.3.4 二维数组程序举例,#include int main() int a23=1,2,3,4,5,6; int b32,i,j; coutarray a: endl; for(i=0;i=1;i+) for(j=0;j=2;j+) coutsetw(5)aij); bji=aij; coutendl; ,coutarray b:endl; for(i=0;i=2;i+) for(j=0;j=1;j+) coutsetw(5)bij; coutendl; return 0; ,例5.5 有一个34的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 程序如下: #include using namespace std; int main( ) int i,j,row=0,colum=0,max; int a34=5,12,23,56,19,28,37,46,-12,-34,6,8; max=a00; /使max开始时取a00的值,for (i=0;imax) /如果某元素大于max max=aij; /max将取该元素的值 row=i; /记下该元素的行号i colum=j; /记下该元素的列号j coutmax=max,row=row,colum=columendl; return 0; ,常量和变量可以用作函数实参,同样数组元素也可以作函数实参,其用法与变量相同。数组名也可以作实参和形参,传递的是数组的起始地址。 1. 用数组元素作函数实参 数组元素可以作为函数的实参,与用变量作实参一样,将数组元素的值传送给形参变量。,5.4 用数组作函数参数,例5.6 用函数处理例5.5。 算法和例5.5是一样的,今设一函数max_value,用来进行比较并返回结果。可编写程序如下: #include using namespace std; int main( ) int max_value(int x,int max); /函数声明 int i,j,row=0,colum=0,max int a34=5,12,23,56,19,28,37,46,-12,-34,6,8; max=a00;,coutmax) return x; else return max; ,for (i=0;i=2;i+) for (j=0;j=3;j+) max=max_value(aij,max); if(max=aij) row=i; colum=j; ,注意主函数中的max与max_value函数中的max,2. 用数组名作函数参数 可以用数组名作函数参数,此时实参与形参都用数组名。 例5.7 用选择法对数组中10个整数按由小到大排序。 所谓选择法就是先将10个数中最小的数与a0对换;再将a1到a9中最小的数与a1对换每比较一轮,找出一个未经排序的数中最小的一个。共比较9轮。 根据此思路编写程序如下:,for(i=0;iai; select_sort(a,10); /函数调用,数组名作实参 for(i=0;i10;i+) /输出10个已排好序的数 coutai ; coutendl; return 0; ,#include using namespace std; int main( ) void select_sort(int array,int n); /函数声明 int a10,i; coutenter the originl array:endl;,void select_sort(int array,int n) /形参array是数组名 int i,j,k,t; for(i=0;in-1;i+) k=i;/k指示第i个最小数的位置 for(j=i+1;jn;j+) if(arrayjarrayk) k=j; t=arrayk; arrayk=arrayi; arrayi=t; ,运行情况如下: enter the originl array: 6 9 -2 56 87 11 -54 3 0 77 /输入10个数 the sorted array: -54 -2 0 3 6 9 11 56 77 87 关于用数组名作函数参数有两点要说明: (1) 如果函数实参是数组名,形参也应为数组名(或指针变量,关于指针见第6章),形参不能声明为普通变量(如int array;)。实参数组与形参数组类型应一致,如不一致,结果将出错。 (2) 需要特别说明的是: 数组名代表数组首元素的地址,并不代表数组中的全部元素。因此用数组名作函数实参时,不是把实参数组的值传递给形参,而只是将实参数组首元素的地址传递给形参。,函数首部的下面几种写法都合法,作用相同。 void select_sort(int array10,int n) /指定元素个数与实参数组相同 void select_sort(int array,int n) /不指定元素个数 void select_sort(int array5,int n) /指定元素个数与实参数组不同 在学习第6章时可以进一步知道,C+实际上只把形参数组名作为一个指针变量来处理,用来接收从实参传过来的地址。,3. 用多维数组名作函数参数 如果用二维数组名作为实参和形参,在对形参数组声明时,必须指定第二维(即列)的大小,且应与实参的第二维的大小相同。第一维的大小可以指定,也可以不指定。如 int array310; /形参数组的两个维都指定 或 int array10; /第一维大小省略 二者都合法而且等价。但是不能把第二维的大小省略。下面的形参数组写法不合法: int array; int array3;,而形参数组可以声明为 int score 310; /列数与实参数组相同,行数不同 int score 810; 这时形参二维数组与实参二维数组都是由相同类型和大小的一维数组组成的,实参数组名score代表其首元素(即第一行)的起始地址,系统不检查第一维的大小。,在第二维大小相同的前提下,形参数组的第一维可以与实参数组不同。例如,实参数组定义为int score510;,例5.8 有一个的矩阵,求矩阵中所有元素中的最大值。要求用函数处理。 解此题的算法已在例5.5中介绍。 程序如下: #include using namespace std; int main( ) int max_value(int array4); int a34=11,32,45,67,22,44,66,88,15,72,43,37; coutmax value is max_value(a)endl; return 0; ,max=array00; for( i=0;imax) max=arrayij; return max; 运行结果如下: max value is 88,int max_value(int array4) int i,j,max;,数组小结,使用数组里的元素,要通过下标一个一个地操作 元素下标从0开始,访问其中的元素不能越界 一维数组名是一个地址常量 数组整体作为参数传递时,传递的是地址,实参和形参共用同一块空间,用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。C和C+专门为它提供了许多方便的用法和函数。,5.5 字符数组,定义字符数组的方法与前面介绍的类似。例如 char c10; c0=I;c1= ;c2=a;c3=m;c4= ;c5=h;c6=a;c7=p;c8=p; c9=y; 上面定义了c为字符数组,包含10个元素。在赋值以后数组的状态如图所示。,5.5.1 字符数组的定义和初始化,对字符数组进行初始化,最容易理解的方式是逐个字符赋给数组中各元素。如 char c10=I, ,a,m,h,a,p,p,y; 把10个字符分别赋给c0c9这10个元素。 如果花括号中提供的初值个数大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符。如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。如 char c =I, ,a,m, ,h,a,p,p,y;,也可以定义和初始化一个二维字符数组,如 char diamond35= , ,*, , *, ,*, , ,*;,只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值。如 char c5; c=C,h,i,n,a; /错误c0=C; c1=h; /对数组元素赋值 如果已定义了a和b是具有相同类型和长度的数组,且b数组已被初始化,请分析: a=b; /错误 a0=b0; /正确,引用数组元素,5.5.2 字符数组的赋值与引用,用一个字符数组可以存放一个字符串中的字符。如char str5=a,b ,c; 系统对字符数组最后两元素自动填补空字符0。为了测定字符串的实际长度,C+规定了一个“字符串结束标志”,以字符0代表。在上面的数组中,第4个字符为0,就表明字符串的有效字符为其前面的3个字符。也就是说,遇到字符0就表示字符串到此结束。,5.5.3 字符串和字符串结束标志,下面再对字符数组初始化补充一种方法: 用字符串常量来初始化字符数组。例如 char str =abc; 也可以省略花括号,直接写成 char str =abc; 注意: 数组str的长度不是3,而是4(因为字符串常量的最后由系统加上一个0)。因此,上面的初始化与下面的初始化等价: char str =a,b ,c,0;,而不与下面的等价: char str=a,b ,c; 前者的长度为4,后者的长度为3。,字符数组的输入输出可以有两种方法: (1) 逐个字符输入输出,如例5.9。 (2) 将整个字符串一次输入或输出。例如有以下程序段: char str20; cinstr; /用字符数组名输入字符串 coutstr; /用字符数组名输出字符串 在运行时输入一个字符串,如 China 在内存中,数组str的状态如下图所示,在5个字符的后面自动加了一个结束符0。,5.5.4 字符数组的输入输出,输出时,逐个输出字符直到遇结束符0,就停止输出。输出结果为 China 如前所述,字符数组名str代表字符数组第一个元素的地址,执行“coutstr;”的过程是从str所指向的数组第一个元素开始逐个输出字符,直到遇到0为止。,请注意: (1) 输出的字符不包括结束符0。 (2) 输出字符串时,cout流中用字符数组名,而不是数组元素名。 (3) 如果一个字符数组中包含一个以上0,则遇第一个0时输出就结束。 (4) 用cin从键盘向计算机输入一个字符串时,从键盘输入的字符串长度应小于已定义的字符数组的长度,否则会出现问题。,由于字符串使用广泛,C和C+提供了一些字符串函数,使得用户能很方便地对字符串进行处理。几乎所有版本的C+都提供下面这些函数,它们是放在函数库中的,在string和string.h头文件中定义。如果程序中使用这些字符串函数,应该用#include命令把string.h或string头文件包含到本文件中。下面介绍几种常用的函数。,5.5.5 字符串处理函数,1. 字符串连接函数 strcat 其函数原型为 strcat(char,const char); strcat是string catenate(字符串连接)的缩写。该函数有两个字符数组的参数,函数的作用是:将第二个字符数组中的字符串连接到前面字符数组的字符串的后面。连接后的字符串放在第一个字符数组中,函数调用后得到的函数值,就是第一个字符数组的地址。例如 char str130=Peoples Republic of ; char str2=China; coutstrcat(str1,str2); /调用strcat函数,输出: Peoples Republic of China 连接前后的状况如图5.10所示。 图5.10,2. 字符串复制函数strcpy 其函数原型为 strcpy(char,const char); strcpy是string copy(字符串复制)的缩写。它的作用是将第二个字符数组中的字符串复制到第一个字符数组中去,将第一个字符数组中的相应字符覆盖。例如 char str110,str2=abc; strcpy(str1,str2); 执行后,str2中的abc和0(共4个字符)复制到数组str1中。,说明: (1) 在调用strcpy函数时,第一个参数必须是数组名(如str1),第二个参数可以是字符数组名,也可以是一个字符串常量。 (2) 可以用strcpy函数将一个字符串中前若干个字符复制到字符数组中去。 Strcpy(str1,str2,2); (3) 只能通过调用strcpy函数来实现将一个字符串赋给一个字符数组,而不能用赋值语句将一个字符串常量或字符数组直接赋给一个字符数组。 str1=“abc”; /错误 str2=str1; /错误,3. 字符串比较函数strcmp 其函数原型为 strcmp(const char,const char); strcmp是string compare(字符串比较)的缩写。作用是比较两个字符串。以下写法是合法的: strcmp(str1,str2); strcmp(abceb,abdeb); strcmp(str1,Beijing);,(3) 如果字符串1str2) cout; 字符数组名str1和str2代表数组地址,上面写法表示将两个数组地址进行比较,而不是对数组中的字符串进行比较。对两个字符串比较应该用 if(strcmp(str1,str2)0) cout;,比较的结果由函数值带回。 (1) 如果字符串1=字符串2,函数值为0。 (2) 如果字符串1字符串2,函数值为一正整数。,4. 字符串长度函数strlen 函数原型为 strlen(const char); strlen是string length(字符串长度)的缩写。它是测试字符串长度的函数。其函数的值为字符串中的实际长度,不包括0在内。如 char str10=” China”; coutstrlen(str); 输出结果不是10,也不是6,而是5。 以上是几种常用的字符串处理函数,除此之外还有其他一些函数。,例5.10 有3个字符串,要求找出其中最大者。利用已有函数。程序如下: #include #include using namespace std; int main( ) void max_string(char str30,int i); /函数声明 int i; char country_name330; for(i=0;icountry_namei; /输入3个国家名 max_string(country_name,3); return 0; ,5.5.6 字符数组应用举例,void max_string(char str30,int n) int i; char string30; strcpy(string,str0); /使string的值为str0的值 for(i=0;i0) /如果stristring strcpy(string,stri); coutthe largest string is: stringendl; ,用字符数组来存放字符串并不是最理想和最安全的方法。 C+提供了一种新的数据类型字符串类型(string类型),在使用方法上,它和char、int类型一样,可以用来定义变量,这就是字符串变量用一个名字代表一个字符序列。 实际上,string并不是C+语言本身具有的基本类型,它是在C+标准库中声明的一个字符串类,用这种类可以定义对象。每一个字符串变量都是string类的一个对象。,*5.6 C+处理字符串的方法字符串类 与字符串变量,1. 定义字符串变量 和其他类型变量一样,字符串变量必须先定义后使用,定义字符串变量要用类名string。如 string string1, string2=China; 应当注意: 要使用string类的功能时,必须在本文件的开头将C+标准库中的string头文件包含进来,即应加上 #include /注意头文件名不是string.h,5.6.1 字符串变量的定义和引用,2. 对字符串变量的赋值 在定义了字符串变量后,可以用赋值语句对它赋予一个字符串常量,如 string1=abcd; 既可以用字符串常量给字符串变量赋值,也可以用一个字符串变量给另一个字符串变量赋值。如 string2=string1; 不要求string2和string1长度相同. 可以对字符串变量中某一字符进行操作,如 string word=Then; word2=a;,3. 字符串变量的输入输出 可以在输入输出语句中用字符串变量名,输入输出字符串,如 cin string1; /从键盘输入一个字符串 cout string2; /将字符串string2输出,在上一节中可以看到: 在以字符数组存放字符串时,字符串的运算要用字符串函数,如strcat(连接)、strcmp(比较)、strcpy(复制),而对string类对象,可以不用这些函数,而直接用简单的运算符。 (1) 字符串复制用赋值号 string1=string2; 其作用与“strcpy(string1,string2);”相同。 (2) 字符串连接用加号 string string1=C+; string string2=Language; string1=string1 + string2; 连接后string1为C+ Language。,5.6.2 字符串变量的运算,(3) 字符串比较直接用关系运算符 可以直接用 =(等于)、(大于)、=(大于或等于)、=(小于或等于)等关系运算符来进行字符串的比较。,不仅可以用string定义字符串变量,也可以用string定义字符串数组。如 string name5; /定义一个字符串数组,包含5个元素 string name5=Zhang, Li, Fun, Wang, Tan;,5.6.3 字符串数组,可以看到: (1) 在一个字符串数组中包含若干个(现为5个)元素,每个元素相当于一个字符串变量。 (2) 并不要求每个字符串元素具有相同的长度,即使对同一个元素而言,它的长度也是可以变化的,当向某一个元素重新赋值,其长度就可能发生变化。 (3) 在字符串数组的每一个元素中存放一个字符串,而不是一个字符,这是字符串数组与字符数组的区别。如果用字符数组存放字符串,一个元素只能存放一个字符,用一个一维字符数组存放一个字符串。 (4) 每一个字符串元素中只包含字符串本身的字符而不包括0。,例5.11 输入3个字符串,要求将字母按由小到大的顺序输出。 #include #include using namespace std; int main( ) string string1,string2,string3,temp; coutstring1string2string3;,5.6.4 字符串运算举例,else if(string1=string3) coutstring2 “ ”string1“ ”string3endl; else coutstring2“ ” string3“ ” string1; ,if(string2string3) temp=string2;string2=string3;string3=temp; if(string1=string2) coutstring1 “ ”string2“ ”string3endl;,例5.12 一个班有n个学生,需要把每个学生的简单材料(姓名和学号)输入计算机保存。然后可以通过输入某一学生的姓名查找其有关资料。当输入一个姓名后,程序就查找该班中有无此学生,如果有,则输出他的姓名和学号,如果查不到,则输出“本班无此人”。 为解此问题,可以分别编写两个函数,函数input_data用来输入n个学生的姓名和学号,函数search用来查找要找的学生是否在本班。 程序可编写如下: #include #include using namespace std; string name50,num50; int n; /n是实际的学生数,int main( ) void input_data( ); /函数声明 void search(string find_name); /函数声明 string find_name; coutn; /输入学生数 input_data( ); coutfind_name; search(find_name); return 0; ,void input_data( ) /函数首部 int i; for (i=0;inameinumi; ,void search(string find_name) int i; bool flag=false; for(i=0;in;i+) if(namei=find_name) coutnamei“has been found, his number is” numiendl; flag=true; break; if(flag=false) coutCant find this name; ,归纳起来,C+对字符串的处理有两种方法: 一种是用字符数组的方法,这是C语言采取的方法,一般称为C string方法;一种是用string类定义字符串变量,称为string方法。显然,string方法概念清楚,使用方便,最好采用这种方法。C+保留C-string方法主要是为了与C兼容,使以前用C写的程序能用于C+环境。,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!