C++ 字符数组.ppt_第1页
C++ 字符数组.ppt_第2页
C++ 字符数组.ppt_第3页
C++ 字符数组.ppt_第4页
C++ 字符数组.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,#define m 3 #define n 2 #define p 4 #include void main() int amn; int bnp; int cmp; int i,j,k,t; for(i=0;iaij; for(i=0;ibij; for(i=0;im;i+) for(j=0;jp;j+) cij=0; for(k=0;kn;k+) cij+=aik*bkj; ,coutA:n; for(i=0;im;i+) for(j=0;jn;j+) coutaij ; coutn; coutB:n; for(i=0;in;i+) for(j=0;jp;j+) coutbij ; c

2、outn; coutC:n; for(i=0;im;i+) for(j=0;jp;j+) coutcij ; coutn; ,矩阵乘积的程序,2,字符数组,复习字符和字符串,3,“A”,“Boy”,字符串,字符串与字符的区别,1.形式上不同,2.本质上:字符串常量有 结束符,“A”,A,A,0,字符串结束标志,A,例1.找错误,#include int main( ), char c1,c2,c3;,如何处理字符串,字符和字符串常量,用字符数组,A n , t ,响铃报警等 ASCII码表示(ddd,xhh),字符,65,65,0,字符数组,字符数组的定义及初始化 字符数组的输入输出 字符串处

3、理函数 字符数组应用举例,char 数组名常量;,定义方式,例:,char a10;,a0,a1,a9,初始化1.全部赋值,(1) 逐个数组元素赋初值,(2) 应用字符串常量赋初值,字符数组的定义及初始化,char c6=P,a,r,t,y,0;,例:确定数组元素 void main( ) char s1 =“yes”; char s2 =y,e,s; .,c,char c6=“party”; char c =“party”;,等价于: char c =P,a,r,t,y,0;,字符数组的定义及初始化,char c110=“party”; char c210=“bei fang”; 部分赋值,

4、其它元素为0。,c1,c2,初始化2.部分赋值,下标0 1 2 3 4 5 6 7 8 9,有效字符的长度(0结束):分别为5和8 数组长度:都是10,不再重要,字符数组的输入输出,n为4 输入good,1.用循环逐个输入输出。 例1: #include void main( ) char s20; int i, n; cinn; for(i=0; isi; for(i=0; in; i+) coutsi; ,一般不用此方式,思考:回车作为结束标志 人为加上0,1.输入时需要先确定字符的个数, 不实用 2.字符数组中存放的不是字符串,8,字符数组的输入输出,回车作为结束标志 例2: #incl

5、ude void main( ) char s10; int i=0; si=getchar( ); while(si!=n) i+; si=getchar( ); si=0; /添加0 for(i=0;si!=0;i+) putchar(si); ,输入good,0,或者还可写成: for(i=0;(si=getchar()!=n;i+) ; si=0; for(i=0;si!=0;i+) putchar(si);,还可写成: while(si=getchar( )!=n) i+; si=0; for(i=0;si!=0;i+) putchar(si);,9,2. 整串输入输出。(设str是

6、定义的字符数组),scanf(“%s” , str );,printf(“%s”, str ) ; 输入到以str0开始的存储单元中 输出时从str0单元开始的一直到 0为止的所有字符 用cinstr; coutstr;处理原则是一样的,数组名代表数组首地址,字符数组的输入输出,字符数组的输入输出,例3: 写结果,#include void main( ), char str20;,scanf(“%s”,str); /cinstr;,printf(“%s”,str); /coutstr;,how,how are you,str0,str19,h,o,w,0,用scanf或cin,遇空格或回车就

7、结束读操作。,且自动加0。,遇到0就结束输出。,char s15=“pascal c”; s4=0; printf (“%sn”, 输出:asc,0;,字符数组的输入输出,str0,str19,gets(数组名);,puts(数组名);,例4 写结果,void main( ), char str20;,gets(str);,puts(str); ,how are you,how are you Press any key key to continue,#include ,演示,3.用gets,puts函数,输入时遇到回车符结束读操作,自动加0,输出时遇到0结束输出并换行,字符串处理函数,加i

8、nclude 1.strcat(str1,str2)-将str2接在str1后面。 注(1)str1长度应足够大 (2)连接后,串1的0取消,新串最后加0 2.strcpy(str1,str2)-将str2拷到str1中。 注(1)str1要能容纳str2的内容。 (2)0一块拷贝 (3)不能使用赋值语句为一个字符数组赋值,例 char str120, str220; str2=Hello; () str1=str2; (),strcpy(str2, Hello);,strcpy(str1, str2);,13,3. strcmp(str1,str2)-比较两个字符串的大小 比较规则:对两串从

9、左向右逐个字符比较(ASCII码), 直到遇到不同字符或0为止 返回值:a. 若字符串1 = 字符串2,返回零 b. 若字符串1 字符串2, 返回正整数 c. 若字符串1 字符串2, 返回负整数 说明:字符串比较不能用“=”,必须用strcmp 4. strlen(str)-求字符串长度。 长度:str中的有效字符(不含0)个数。 例:coutstrlen(“China”); 5 5. strlwr(str)-将str中的大写字母转换成小写字母。 6. strupr(str)-将str中的小写字母转换成大写字母。 课本140页,字符串处理函数,14,程序举例, 0 1 2 3 4 ,g,o,o

10、,d,0 ,str,1.求字符串的有效长度 (即第1个0前面字符的个数),#include #include int main( ) char str80; int len; gets(str); len=0; for(; strlen!=0; ) len+; coutstr有效长度是:len; return 0; ,字符数组问题一般通过0来控制循环 for( len=0 ;strlen!=0; len+) ;,程序举例,#include int main() char a20,b20; int i; gets(a); for(i=0;ai!=0;i+) bi=ai; bi=0; puts(b

11、); return 0; ,y,u,a,n,0 . . .,字符串a,2.字符串拷贝(将a的内容拷贝到b),通过0来控制循环 用长度控制循环?,y,u,a,n,0,字符串b,程序举例3.字符串首尾相连,a:,How a,b:,re you?,连接后:,a:,How are you?,H,o,w,a,r,e,y,o,0,u,?,0,H,o,w,a,r,e,0,a,b,y,o,u,?,l=0,当al!=0,l+,i=0,当bi!=0,al=bi,l+,i+,al=0,#include ,void main(),char a40,b20;,int i=0,l=0;,while(al!=0) l+;,

12、while(bi!=0) al=bi;l+;i+;,al=0;,gets(a);gets(b);,puts(a); ,1.找到字符串a的尾,2.拷贝串b,找到串1的尾,拷贝串2,程序举例4.字符串的逆序输出,s,n,c,e,p,u,0,变成,s,u,p,e,c,n,0,s0与slengh-1换 s1与slengh-2换 s2与slengh-3换 i:0lengh/2-1; si与slengh-1-i换,#include #include int main() char s30,t; int lengh,i; printf(input s:); gets(s); lengh=strlen(s);

13、 for(i=0;ilengh/2;i+) t=si; si=slengh-1-i; slengh-1-i=t; puts(s); return 0; ,l=strlen(s),b=0,e=l-1,当be时,sb与se互换,#include #include ,int main(),char s40,c;,int b,e,l;,gets(s);,l=strlen(s);,b=0;e=l-1;,while(be),c=sb;sb=se;se=c;,puts(s); return 0; ,b+,e-,b+;e-;,程序举例4.字符串的逆序输出,s,n,c,e,p,u,0,变成,s,u,p,e,c,

14、n,0,19,程序举例5.输入一行数字字符,统计其中0、1、 2、9的个数。,a数组存放一行数字字符:如1984052836,c数组统计个数:c0是0的个数,c1是1的个数,,#include void main ( ) int c10=0,i; char a50; gets(a); for(i=0;ai!=0;i+) if(ai=0) c0+; else if(ai=1) c1+; else if(ai=2) c2+; else if(ai=8) c8+; else c9+; for(i=0;i10;i+) printf( %d,%dn,i,ci); ,字符 ASCII,c的单元,0,48,

15、0,关系,0- 48,1,49,1,1- 48,9,57,9,9- 48,#include void main ( ) int c10=0,i; char a50; gets(a); for(i=0;ai!=0;i+) cai-48+;/或cai-0+ for(i=0;i10;i+) printf( %d,%dn,i,ci); ,20,例6 读程序写运行结果,#include void main( ) char c =45ytr3; int i,n=0; for(i=0;ci!=0;i+) if(ci=0 ,#include void main( ) char c =45ytr3; int i,n=0; for(i=0;ci=0 ,程序举例-,453,45,二维字符数组,char c320,C C T V 0 .,B T V 0 .,N T V 0 .,c0 c1 c2,c0是第一个串的名字,代表 int i; for(i=0;i3;i+) gets(ci); for(i=0;i3;i+) puts(ci); return 0; ,00,01,02,019,10,11,12,119,20,21,22,219,c0,c1,c2, 0 1 2 3 4 19 ,22,例7 有一篇文章,有3行文字,每行不超过80个字符,要求分别统计出其中英文大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论