字符串及其操作.ppt
《字符串及其操作.ppt》由会员分享,可在线阅读,更多相关《字符串及其操作.ppt(32页珍藏版)》请在三一办公上搜索。
1、1,第十章字符串及其操作,内容提要,本章主要包括以下几个内容:概述字符与字符串 字符数组与字符串 字符串作为函数参数应用举例,10.1 引言,字符串是C语言中最有用而且最重要的数据结构之一。printf(“Welcome to C programming”);其中,传递给函数printf的参数就是一个字符串。双引号被用作字符串的边界符号,其中可以包含除了双引号之外的任何字母、数字以及特殊字符的任意组合。,用双引号括起来的字符序列,其长度可大于1。如:“How do you do”,“CHINA”,“a”,“$123.34”等可以使用#define来定义字符串常量一个字符变量只能存放一个字符。它
2、的定义形式如:char c1,c2;在内存中字符变量的存储形式是ASCII码注意区分和 前面章节中已经学习了字符常量、字符变量、字符串常量,到目前为止我们还没有使用过字符串变量 C语言中没有字符串变量,而是以字符数组来表示,10.2 字符与字符串,10.3 字符数组与字符串,字符数组与字符串的关系字符数组数据类型为 char 的数组char string80;字符串特殊的字符数组,字符数组的最后一个元素为0,字符串只是一种特殊的字符数组,一个新的名词或概念;不是一种新的数据类型。在C语言中 字符串有一套特殊的表示方法和处理方法。,字符数组的初始化:,1、用字符型数据逐个对数组进行初始化 cha
3、r str6=C,h,i,n,a,0;2、用字符串常量直接对数组初始化 char str6=China;char str6=China;,以0结尾的字符数组,用双引号括起表示字符串 常量,C语言自动为其添加0终结符在字符串初始化时,C语言允许采用”=”将一串字符一次赋给字符数组,10.3.1 字符数组的定义与初始化,用二维数组存放字符串char str 10=Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;,0行1行.6行,0列 1列.9列,对数组定义时,切记要给出足够长度,10.3.1 字符数组的定义与初始化,10.3.2 字
4、符串与指针,字符串在内存中的起始地址称为字符串的指针,可以定义一个字符指针变量指向一个字符串。在语言中,既可以用字符数组表示字符串,也可用字符指针变量来表示;引用时,既可以逐个字符引用,也可以整体引用。1、逐个引用【exp10_1】#include main()char*string=”I love Beijing.”;for(;*string!=0;string+)printf(“%c”,*string);printf(“n”);,程序运行结果:I love Beijing.,程序说明:char*string=I love Beijing.;该语句定义并初始化字符指针变量string:用串常
5、量“I love Beijing.”的地址(由系统自动开辟、存储串常量的内存块的首地址)给string赋初值。该语句也可分成如下所示的两条语句:char*string;string=I love Beijing.;注意:字符指针变量string中,仅存储串常量的地址,而串常量的内容(即字符串本身),是存储在由系统自动开辟的内存块中,并在串尾添加一个结束标志0。,10.3.2 字符串与指针,2.整体引用采取整体引用的办法,改写上例。【exp10_2】#include main()char*string=”I love Beijing.”;printf(“%sn”,string);程序说明:pri
6、ntf(“%sn”,string);语句通过指向字符串的指针变量string,整体引用它所指向的字符串的原理:系统首先输出string指向的第一个字符,然后使string自动加,使之指向下一个字符;重复上述过程,直至遇到字符串结束标志。,10.3.2 字符串与指针,注意:其它类型的数组,是不能用数组名来一次性输出它的全部元素的,只能逐个元素输出。例如:int array10=;.printf(%dn,array);/*这种用法非法*/.字符指针变量与字符数组之比较虽然用字符指针变量和字符数组都能实现字符串的存储和处理,但二者是有区别的,不能混为一谈。,10.3.2 字符串与指针,字符指针变量与
7、字符数组的主要区别:(1)存储内容不同:字符指针变量中存储的是字符串的首地址,而字符数组中存储的是字符串本身(数组的每个元素存放一个字符)。(2)赋值方式不同:对字符指针变量,可采用下面的赋值语句赋值:char*pointer;pointer=This is a example.;而字符数组,虽然可以在定义时初始化,但不能用赋值语句整体赋值。下面的用法是非法的:char char_array20;char_array=This is a example.;/*非法用法*/(3)指针变量的值是可以改变的,字符指针变量也不例外;而数组名代表数组的起始地址,是一个常量,而常量是不能被改变的。,10.
8、3.2 字符串与指针,10.3.2 字符串与指针,字符字符数组与指针变量的用法总结,字符串数组(指针数组)例如char*country3=“China”,“England”,“USA”;第一个指针country0指向“China”第二个指针country1指向“England”第三个指针country2指向“USA”注意:对比二维数组char str 10=Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday;,1、逐个输入输出字符数组for(i=0;Stri10;i+)getchar(Stri);putchar(Stri);,声明
9、char Str10;用于存储字符,最多10个用于存储字符串,最多9个,10.3.3 字符串的输入输出,为什么?,字符串for(i=0;Stri9;i+)scanf(%c,2、一次性输入输出scanf(%s,Str);printf(%s,Str);gets(s);puts(s);,注意:字符串含有空格、回车或Tab符号,不能用scanf(“%s”,)读入,而 gets()可以。printf(“%s”,)遇到字符数组中0 停止输出。比较scanf与gets的使用(见P141的例10-8),10.3.3 字符串的输入输出,10.3.4 常用的字符串处理函数,字符串的处理一般借助字符串处理函数。在中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 字符串 及其 操作
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6268056.html