如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C++程序设计教程(第二版)数据类型:一定的数据在计算机的内部表示;该数据所表示的值的集合;在该数据上的一系列操作。内部数据类型:1.整型长整型,短整型,字符型,布尔型2.浮点型单精度,双精度第三章内容1.整型(intTypes)编译器的机器字长总是与整型的位长有关.如:32位编译器的整型数一定为32位长整型字面值分八进制,十进制和十六进制不同表示.如:0123//8进制0x12af3//16进制12345//10进制超过表示范围的整型数其值不可预料或者出错.如:inta=12345678912345678912345;//错2.整型子类(Sub-intTypes)枚举型:自定义整数区间,甚至列举单个整数值enumWeek{Mon,Tue,Wed,Thu,Fri,Sat,Sun};最大特点是可以给每个值指定一个在程序中直接使用的标记(枚举符).编程中将其当作整数常量用.如:inta=7;if(a==Sun)cout<<“Sunday\n”;布尔型:表示范围仅含整数0和1,也可以表示成true和false,相当于:enumbool{false,true};因为条件表达式、逻辑运算的结果都是0或1,所以,相当大数量的表达式的值与布尔型对应3.浮点型(Floating-PointTypes)4.C-串与string(C-string&string)知道了C-串首地址,即可知道整个串,所以可以藉字符首址(字符指针)来操作C-串,但要注意,串的第一个字符与整个串的操作不同,如,C-串的输出操作:char*str=”Hello”;cout<<*str<<endl;//显示Hcout<<str<<endl;//显示HelloC-串不能直接比较,因为字符指针的比较只是地址值的比较而不是C-串的字典序比较:cout<<(“join”==”join”?””:”not“)<<”equal\n”;//字面值比较char*str1=”good”;char*str2=”good”;cout<<(str1==str2?””:”not“)<<”equal\n”;//字符指针比较charbuffer1[6]=”Hello”;charbuffer2[6]=”Hello”;cout<<(buffer1==buffer2?””:”not“)<<”equal\n”;//字符数组比较结果:notequalnotequalnotequal不得不配备专门操作C-串的库函数:strcpy(s1,s2);//从s2拷贝到s1strcmp(s1,s2);//比较s1与s2strcat(s1,s2);//连接s2到s1strrev(s);//将s倒排strset(s,‘c’);//将s全置为cstrstr(s,“ell”);//查找s中的子串strchr(s,‘c’);//查找s中的字符等等但字符指针操作C-串的安全性受到质疑:char*str1;char*str2=newchar[5];strcpy(str2,”ugly”);strcpy(str1,str2);//错:str1没有空间可储strcpy(str2,”Hello”);//错:str2空间不够大str2=”Hello”;//错:原来的”ugly”空间脱钩,导致内存泄漏根源:复制操作须以足够的目的地空间为前提,而所有C-串操作的空间调配都是人为安排的,C-串库函数一概不管类串string—串类—自定义串对应字符指针的C-串操作:stringa,s1="Hello";strings2="123";a=s1;//copycout<<(a==s1?"":"not")<<"equal\n";//comparecout<<a+s2<<endl;//concatenatereverse(a.begin(),a.end());cout<<a<<endl;//reversecout<<a.replace(0,9,9,'c')<<endl;//setcout<<(s1.find("ell")!=-1?"":"not")<<"found\n";//findstringcout<<(s1.find('c')!=-1?"":"not")<<"found\n";//findchar输入C-串的string承载方式:cin>>的读入方式总是将前导的空格(所谓空格,即包括空格、回车、水平或垂直制表符等)滤掉,将单词读入,在遇到空格时结束本次输入getline总是将行末的回车符滤掉,将其整行输入对字串”Hello,Howareyou?”的两种输入方式for(strings;cin>>s;)cout