欢迎来到天天文库
浏览记录
ID:43738052
大小:488.50 KB
页数:25页
时间:2019-10-13
《第19次(字符串)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ITEducation&TrainingNeusoftInstituteofInformationDate:07九月2021办公室:C7EMAIL:huang.w@neusoft.com课件下载网址:ftp://computer.dept.ccniit.com任课教师:黄伟第四章数组授课要点字符数组的定义及初始化字符串的定义及初始化字符串处理函数如何在屏幕上显示如下信息:abcdefghij问题字符数组的定义char字符数组名称[字符数组的长度]特点:字符数组的每个存储单元只能存储1个字符。如:charstr[10
2、];则:数组str中可以存放10个字符。假设存入的字符分别为:’a’、’b’、’c’、’d’、’e’、’f’、’g’、’h’、’i’、’j’则这组字符在内存的存储可能如下:abcdefghijstr字符数组的初始化与一维数组的初始化类似,我们也可以在定义字符数组的同时就对它进行赋值,即初始化。如:chars[5]={‘a’,‘b’,‘c’,‘d’,‘e’};则:数组元素在内存中的存储如下:abcdes数组名s是常量,代表数组所占内存单元的首地址字符串的定义及初始化字符串是用一对双引号括起来的字符序列。双引号中可以是
3、一个字符,也可以是多个字符。在C中,没有专门的字符串变量,它只能通过字符数组来进行操作。可用如下形式定义一个字符串charstr1[10]=“hellotom”;字符串在内存中的表示在C中,每个字符串的末尾系统都会自动加上一个特殊字符‘ ’,以方便进行字符串处理。‘ ’是字符串结束标记。如上面定义的字符串charstr[12]=“hellotom”;在内存中的存储如下:hellotom str数组名str是常量,代表数组所占内存单元的首地址字符串的输入与输出1、用printf和scanf来进行输入输出#inc
4、ludemain{myfunc();}myfunc(){charstr[100];//定义一个较大的字符数组用来存储字符串printf("Inputastring:");scanf("%s",str);printf("thestringis:");printf("%s",str);}字符串的输入与输出2、用gets和puts来进行输入输出#includemain{myfunc();}myfunc(){charstr[100];//定义一个较大的字符数组用来存储字符串pri
5、ntf("Inputastring:");gets(str);printf("thestringis:");puts(str);}小组讨论并总结gets和scanf输入字符串时的差别。puts和printf输出字符串的差别。gets和scanf输入字符串时的差别gets是能够接收到空格的字符串,到回车字符为止;scanf不能接收空格,一般遇到空格或回车即停止。如在执行时输入字符串“IwanttolearnClanguagewell.”用gets可以接收所有字符串,用scanf只能接收I。故:对于字符串的处理
6、常用字符串处理函数来操作。puts和printf输出字符串的差别puts在输出字符串时,遇到’ ’会自动终止输出,并且将’ ’转换为’’来输出。而printf在输出字符串时,遇到’ ’只是终止输出,并不会将’ ’转换为’’来输出。观察以下代码的运行结果:voidmain(){chars[]="hello!";puts(s);puts(s);printf("%s",s);printf("%s",s);}字符串处理函数1、输入函数:gets语法形式:gets(str);/*str为已定义好的字符数组*/
7、功能:从键盘接收一个字符串,存储到数组str中,并在末尾自动添加上字符串结束标志’ ’。2、输出函数:puts语法形式:puts(str);/*str为已定义好的字符数组*/功能:输出字符串str的内容,并将字符串结束标志’ ’转换成’’输出。模仿练习从键盘输入一个字符串,输出该字符串。字符串处理函数3、求字符串长度函数:strlen语法形式:strlen(str);/*str为已定义好的字符数组*/功能:求字符串str的有效元素的个数,不包括’ ’在内。如:charstr[100]=“study”;in
8、tlength;length=strlen(str);printf(“%d”,length);则输出为:5要注意字符串的长度与数组的长度的区别模仿练习从键盘输入一个字符串,求该字符串的长度。字符串处理函数4、字符串连接函数:strcat语法形式:strcat(strSource,strTarget);/*strSource和strTarget为已定义好的两个
此文档下载收益归作者所有