资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,电气与信息工程学院计算机系制作,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,2024/11/28,Lesson 11,数据的组织结构,2024/11/28,学习目标,:,3,1,掌握二维数组的使用,2024/11/28,3,字符数组,2,复习字符串,用双引号括起来的一串字符,“1234”,“Tom”,“C Lanuage Program”,2024/11/28,3,字符数组,2,字符数组:数组元素的类型为字符,h,e,l,l,o,0,2024/11/28,3,字符数组,2,字符数组的定义,char ch10;,2024/11/28,3,字符数组,2,字符数组的初始化,(1),字符数组的初始化的基本方法,char ch5,=h,e,l,l,o;,(2),省略长度说明如:,char ch,=h,e,l,l,o;,(3),使用字符串初始化字符数组:,char ch=“abcde”;,char ch=“abcde”;,a,b,c,d,e,0,2024/11/28,3,字符数组,2,字符串在计算机中表示,char ch=“1234”,1,2,3,4,0,字符数组,字符串结束标志,数组,ch,2024/11/28,3,字符数组,2,字符串的输入输出,1,、,gets(str);,2,、,scanf(“%s”,str);,gets(),函数以换行符或文件结束符,EOF,作为输入的结束标志,因此在输入的字符串中允许包含空格和制表符;,scanf(),函数则以空格、制表符、换行符和文件结束符,EOF,作为输入的结束标志,因此,在输入的字符串中不允许包含这些字符。如果包含了它们,将作为字符串输入的结束标志处理。,char str100;,2024/11/28,3,字符数组,2,字符串的输出,1,、,puts(str);,2,、,printf(%s”,str);,puts,将字符串的内容显示到标准输出设备,屏幕上,并换行。,2024/11/28,3,字符数组,2,字符串的输出,1,、,puts(str);,2,、,printf(%s”,str);,puts,将字符串的内容显示到标准输出设备,屏幕上,并换行。,2023/1/4,3,字符数组,2,运行如下,程,程序,第一次:,输,输入,face,,观察结,果,果,第二次:,输,输入,123abc,,观察结,果,果,lesson11_11_1.c,lesson11_11_2.c,#include,#include,intmain(),charnum1100;,gets(num1);,puts(num1);,return 0;,#include,#include,intmain(),charnum1100;,scanf(%s,num1);,printf(%s,num1);,return 0;,2023/1/4,3,字符数组,2,练习,1,:从键盘,输,输入一个,单,单词,然,后,后将其反,着,着输出,,例,例如输入,face,输出:,ecaf,f,a,c,e,0,数组,ch,2023/1/4,3,字符数组,2,练习,2,:从键盘,输,输入一个,字,字符串,,将,将每个字,符,符往前移,动,动一个位,置,置,最后,一,一个移到,第,第一个。,例如输入,1234,输出,2341,1,2,3,4,0,数组,ch,2,3,4,1,0,lesson11_ktlx2.c,2023/1/4,gets(char*str);,从键盘输入字符串,puts(char*str);,将字符串在屏幕上输出,atof(char*str);,将字符串转换成小数,atoi(char*str);,将字符串转换成,int,整数,atol(char*str);,将字符串转换成,long,整数,itoa(int num,char*str,int radix);,将,num,转换成,radix,进制的字符串,ltoa(long num,char*str,radix);,将,num,转换成,radix,进制的字符串,strlwr(char*str);,将,str,转换成小写,strupr(char*str);,将,str,转换成大写,strlen(char*str);,求,str,的长度,strcmp(char*str1,char*str2);,比较,str1,和,str2,的大小,如果,str1str2,返回正数,strcpy(char*str1,char*str2);,将字符串,str2,拷贝到,str1,中,1,strcat(char*str1,char*str2);,将字符串,str2,连接到,str1,后,2023/1/4,3,字符数组,2,字符,串,串转,换,换成,数,数值,类,类型,atof(str);,atoi(str);,atol(str);,其中,str,是一,个,个字,符,符串,。,。,atof(),的返,回,回类,型,型是,double,,它,可,可以,将,将字,符,符串,str,转换,成,成一,个,个双,精,精度,数,数值,;,;,atoi(),的返,回,回类,型,型是,int,,它,可,可以,将,将字,符,符串,str,转换,成,成普,通,通整,型,型;,atol(),的返,回,回类,型,型是,long,,它,可,可以,将,将字,符,符串,str,转换,成,成长,整,整型,(,(,long,)。,2023/1/4,3,字符数组,2,例,1,:将,用,用户,以,以字,符,符串,形,形式,输,输入,的,的两,个,个实,型,型数,值,值转,换,换成,double,类型,,,,并,显,显示,输,输出,这,这两,个,个实,型,型数,值,值及,它,它们,相,相加,的,的结,果,果。,2023/1/4,#include,#include,intmain(),charnum120,num220;,doubled1,d2,sum;,printf(nEnterthefirstnumber:);,gets(num1);/*,输入,第,第,1,个用,字,字符,串,串表,示,示的,实,实型,数,数值*,/,printf(Enterthssecondnumber:);,gets(num2);/*,输入,第,第,2,个用,字,字符,串,串表,示,示的,实,实型,数,数值*,/,d1=atof(num1);/*,将第,1,个字,符,符串,转,转换,成,成,double,类型*,/,d2=atof(num2);/*,将第,2,个字,符,符串,转,转换,成,成,double,类型*,/,sum=d1+d2;/*,将,2,个,double,类型,数,数值,相,相加*,/,printf(n%s+%s=%.3lf,num1,num2,sum);/*,显示,结,结果*,/,return0;,lesson11_01.c,2023/1/4,3,字符数组,2,数值类,型,型转换,成,成字符,串,串,itoa(num,str,radix);,ltoa(num,str,radix);,其中,str,用于存,放,放结果,的,的字符,串,串,,radix,是用户,指,指定的,进,进制数,,,,它的,取,取值必,须,须介于,236,之间。,在,在,itoa(),函数中,的,的,num,是一个,int,类型的,数,数值;,在,在,ltoa(),函数中,的,的,num,是一个,long,类型的,数,数值。,2023/1/4,3,字符数组,2,例,2,:将用,户,户输入,的,的长整,型,型(,long,类型),数,数值转,换,换成以,字,字符串,形,形式表,示,示的十,六,六进制,、,、八进,制,制和二,进,进制数,值,值,并,显,显示输,出,出。,2023/1/4,#include,#include,int main(),charstr33;,longvalue;,printf(nEntera long number:);,scanf(%ld,/*,输入一个,long,类型的数值*,/,ltoa(value,str,16);/*,转换成用字,符,符串形式表,示,示的十六进,制,制数值*,/,printf(nThe hexadecimalof%ld is%s,value,str);,ltoa(value,str,8);/*,转换成用字,符,符串形式表,示,示的八进制,数,数值*,/,printf(nThe octadecimalof%ld is%s,value,str);,ltoa(value,str,2);/*,转换成用字,符,符串形式表,示,示的二进制,数,数值*,/,printf(nThe binaryof%ld is%s,value,str);,return 0;,lesson11_02.c,2023/1/4,3,字符数组,2,大小写转换,strlwr(str);,strupr(str);,str,是一个字符,串,串。标准函,数,数,strlwr(),可以将字符,串,串,str,中出现的所,有,有大写字母,转,转换成小写,字,字母;标准,函,函数,strupr(),可以将字符,串,串,str,中出现的所,有,有小写字母,转,转换成大写,字,字母。,2023/1/4,3,字符数组,2,计算字符串,长,长度,strlen(str);,这个函数的,功,功能是返回,字,字符串中所,包,包含的字符,个,个数,即字,符,符串长度。,字,字符串结束,标,标志,0,不计算在内,。,。,字符串比较,strcmp(str1,str2);,两个字符串,进,进行比较时,将,将依据每个,字,字符对应的,ASCII,编码决定,其,其大小。,2023/1/4,3,字符数组,2,例,4,:,假,假,设,设,用,用,户,户,的,的,密,密,码,码,是,是,“,administrators,”,,,下,下,面,面,这,这,个,个,程,程,序,序,将,将,用,用,于,于,检,检,测,测,用,用,户,户,输,输,入,入,的,的,密,密,码,码,是,是,否,否,正,正,确,确,。,。,如,如,果,果,不,不,正,正,确,确,,,,,给,给,出,出,相,相,应,应,的,的,提,提,示,示,信,信,息,息,,,,,并,并,请,请,求,求,用,用,户,户,重,重,新,新,输,输,入,入,。,。,分,析,析,:,循,环,环,的,的,从,从,键,键,盘,盘,输,输,入,入,一,一,个,个,字,字,符,符,串,串,,,,,用,用,来,来,和,和,administrators,比,较,较,,,,,如,如,果,果,相,相,等,等,结,结,束,束,循,循,环,环,2023/1/4,#include,#include,int main(),charpassword20;,/*,存放用户输,入,入的密码*,/,printf(nEnterpassword:);,gets(password);,/*,输入密码*,/,/*,检测用户输,入,入的密码,,如,如果不正确,,,,给出提示,,,,并请求重,新,新输入*,/,while(strcmp(password,administrators)!=0),printf(nInvalid passwordnn);,printf(Enter password,again:);,gets(password);,printf(OK);/*,输入正确,,显,显示,OK*/,return 0;,lesson11_04.c,2023/1/4,3,字符数组,2,字符,串,串拷,贝,贝,strcpy(str1,str2);,其中,str2,是将,要,要被,拷,拷贝,的,的字,符,符串,,,,,str1,是用,于,于存,放,放拷,贝,贝结,果,果的,存,存储,区,区域,。,。,字符,串,串连,接,接,strcat(str1,str2);,其中,str1,和,str2,是两,
展开阅读全文