《次字符数组》PPT课件.ppt_第1页
《次字符数组》PPT课件.ppt_第2页
《次字符数组》PPT课件.ppt_第3页
《次字符数组》PPT课件.ppt_第4页
《次字符数组》PPT课件.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

,授课要点,字符数组的定义及初始化 字符串的定义及初始化 字符串处理函数,定义一个长度为10的整型数组,并初始化; 定义一个长度为10的单精度浮点型数组,并初始化; 定义一个长度为10的字符型数组,并初始化;,问题,字符数组的定义,char 字符数组名称字符数组的长度,特点:字符数组的每个存储单元只能存储1个字符。 如: char str10; 则: 数组str中可以存放10个字符。 假设存入的字符分别为:a、b、c、d、e、f、g、h、i、j 则这组字符在内存的存储如下:,str,字符数组的初始化,与一维数组的初始化类似,我们也可以在定义字符数组的同时就对它进行赋值,即初始化。,如: char s5=a, b, c, d, e; 则:数组元素在内存中的存储如下:,s,数组名s是常量,代表数组所占内存单元的首地址,字符串的定义及初始化,字符串 是用一对双引号括起来的字符序列。 在C中,没有专门的字符串变量,它只能通过字符数组来进行操作。,可用如下形式定义一个字符串 char str110=“hello tom”;,字符串在内存中的表示,在C中,每个字符串的末尾 系统 都会自动加上一个特殊字符 0 。 0是字符串结束标记。,如上面定义的字符串 char str12=“hello tom”; 在内存中的存储如下:,str,数组名str是常量,代表数组所占内存单元的首地址,字符串的输入与输出,1、用printf和scanf来进行输入输出,#include main myfunc(); ,myfunc() char str100;/定义一个较大的字符数组用来存储字符串 printf(“Input a string:n“); scanf(“%s“, str); printf(“the string is:n“); printf(“%s“, str); ,字符串的输入与输出,2、用gets和puts来进行输入输出,#include main myfunc(); ,myfunc() char str100;/定义一个较大的字符数组用来存储字符串 printf(“Input a string:n“); gets(str); printf(“the string is:n“); puts(str); ,讨论并总结,gets和scanf输入字符串时的差别。 puts和printf输出字符串的差别。,gets和scanf输入字符串时的差别,gets 能够接收到空格的字符串,到回车字符为止;scanf 接收到空格或回车为止。 如在执行时输入字符串“I want to learn C language well.” 注:对于字符串的处理常用字符串处理函数来操作。,puts和printf输出字符串的差别,puts在输出字符串时,遇到0会自动终止输出,并且将0转换为n来输出。 而printf在输出字符串时,遇到0只是终止输出,并不会将0转换为n来输出。 观察以下代码的运行结果: void main() char s=“hello!“; puts(s);puts(s); printf(“%s“,s); printf(“%s“,s); ,字符串处理函数,1、输入函数: gets 语法形式: gets(str); /*str为已定义好的字符数组*/ 功能: 从键盘接收一个字符串,存储到数组str中,并在末尾自动添加上字符串结束标志0。,2、输出函数: puts 语法形式: puts(str); /*str为已定义好的字符数组*/ 功能: 输出字符串str的内容,并将字符串结束标志0转换成n输出。,补充:sizeof()运算符,sizeof(类型名/变量名) 该函数用来得到该类型/该变量存储在内存中所占的字节数: 如:在VC环境中,sizeof(short)的值为2 sizeof(int ) 的值为4 如:有定义 float x,y; 在VC环境中, sizeof(x)的值为4 sizeof(y)的值为4,模仿练习,将整型数20转换为浮点型,如何转换? 使用sizeof( )运算符求char、int、short、long、float、double、long double等类型在VC环境中的存储字节数,字符串处理函数,3、求字符串长度函数: strlen 语法形式: strlen(str); /*str为已定义好的字符数组*/ 功能:求字符串str的有效元素的个数,不包括0在内。,如:char str100=“study”; int length; length=strlen(str); printf(“%d,%dn”, length,sizeof(str);,则输出为: 5,100,要注意字符串的长度与数组的长度的区别,字符串处理函数,4、字符串连接函数: strcat 语法形式: strcat(strSource, strTarget); /*strSource和strTarget为已定义好的两个字符数组*/ 功能: 将字符串strTarget连接到strSource字符串的尾部,并在新串末尾自动添加0。,如: char str1100=“study“; char str220=“C Language“; strcat(str1, str2); puts(str1);,则输出为: studyC Language,字符串处理函数,5、字符串拷贝函数: strcpy 语法形式: strcpy(strSource, strTarget); /strSource和strTarget为已定义好的两个字符数组 功能: 将字符串strTarget拷贝到strSource字符串中。,如: char str1100=“C Language“; char str220=“Study“; strcpy(str1, str2); puts(str1); strcpy(str1, “Hello!“); puts(str1);,则输出为: Study Hello!,字符串处理函数,6、字符串比较函数: strcmp 语法形式: strcmp(str1, str2); /*str1和str2为已定义好的两个字符数组*/ 功能: 将str1与str2进行比较,若str1大于str2,则返回正值,若str1与str2相等,则返回0,若str1小于str2,则返回负值。,如:char str120=“study“,str220=“student“; int result; result = strcmp(str1, str2); printf(“result=%d,“, result); result = strcmp(str2, str1); printf(“result=%dn“, result);,则输出为: result=1, result=-1,模仿练习,1.从键盘输入一个字符串,求该字符串的长度和该字符数组的长度并输出该字符串。 2.从键盘输入两个字符串保存到数组a、b中,将字符串b连接到字符串a的末尾。然后输出连接后的字符串。 3.从键盘输入两个字符串保存到数组a、b中,比较这两个字符串的大小。 如果ab,显示“a大于b” 如果ab,显示“a小于b” 如果a=b,显示“a等于b”,进阶训练,不使用系统提供的函数实现以下功能。 1、从键盘输入一个字符串,求该字符串的长度。 2、从键盘输入两个字符串保存到数组a、b中,将字符串b连接到

温馨提示

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

评论

0/150

提交评论