资源描述:
《《字符串及其操作》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1第十章字符串及其操作内容提要本章主要包括以下几个内容:概述字符与字符串字符数组与字符串字符串作为函数参数应用举例10.1引言字符串是C语言中最有用而且最重要的数据结构之一。printf(“WelcometoCprogramming ”);其中,传递给函数printf的参数就是一个字符串。双引号被用作字符串的边界符号,其中可以包含除了双引号之外的任何字母、数字以及特殊字符的任意组合。用双引号括起来的字符序列,其长度可大于1。如:“Howdoyoudo”,“CHINA”,“a”,“$123.34”等可以使用#de
2、fine来定义字符串常量一个字符变量只能存放一个字符。它的定义形式如:charc1,c2;在内存中字符变量的存储形式是ASCII码注意区分""和''前面章节中已经学习了字符常量、字符变量、字符串常量,到目前为止我们还没有使用过字符串变量C语言中没有字符串变量,而是以字符数组来表示10.2字符与字符串10.3字符数组与字符串字符数组与字符串的关系字符数组数据类型为char的数组charstring[80];字符串特殊的字符数组,字符数组的最后一个元素为' '字符串只是一种特殊的字符数组,一个新的名词或概念;不是
3、一种新的数据类型。在C语言中字符串有一套特殊的表示方法和处理方法。字符数组的初始化:1、用字符型数据逐个对数组进行初始化charstr[6]={'C','h','i','n','a',' '};2、用字符串常量直接对数组初始化charstr[6]={"China"};charstr[6]="China";以‘ ’结尾的字符数组用双引号括起表示字符串常量,C语言自动为其添加' '终结符在字符串初始化时,C语言允许采用”=”将一串字符一次赋给字符数组10.3.1字符数组的定义与初始化用二维数组存放字符串cha
4、rstr[][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};Sunday' '000Monday' '000Tuesday' '00Wednesday' 'Turesday' '0Friday' '000Saturday' '00行1行...6行0列1列...9列对数组定义时,切记要给出足够长度10.3.1字符数组的定义与初始化10.3.2字符串与指针字符串在内存中的起始地址称为字符串的指针
5、,可以定义一个字符指针变量指向一个字符串。在C语言中,既可以用字符数组表示字符串,也可用字符指针变量来表示;引用时,既可以逐个字符引用,也可以整体引用。1、逐个引用【exp10_1】#includemain(){char*string=”IloveBeijing.”;for(;*string!=’ ’;string++)printf(“%c”,*string);printf(“”);}程序运行结果:IloveBeijing.程序说明:char*string="IloveBeijing."
6、;该语句定义并初始化字符指针变量string:用串常量“IloveBeijing.”的地址(由系统自动开辟、存储串常量的内存块的首地址)给string赋初值。该语句也可分成如下所示的两条语句:char*string;string="IloveBeijing.";注意:字符指针变量string中,仅存储串常量的地址,而串常量的内容(即字符串本身),是存储在由系统自动开辟的内存块中,并在串尾添加一个结束标志’ ’。10.3.2字符串与指针2.整体引用采取整体引用的办法,改写上例。【exp10_2】#include
7、main(){char*string=”IloveBeijing.”;printf(“%s”,string);}程序说明:printf(“%s”,string);语句通过指向字符串的指针变量string,整体引用它所指向的字符串的原理:系统首先输出string指向的第一个字符,然后使string自动加1,使之指向下一个字符;重复上述过程,直至遇到字符串结束标志。10.3.2字符串与指针注意:其它类型的数组,是不能用数组名来一次性输出它的全部元素的,只能逐个元素输出。例如:intarra
8、y[10]={……};......printf("%d",array);/*这种用法非法*/......字符指针变量与字符数组之比较虽然用字符指针变量和字符数组都能实现字符串的存储和处理,但二者是有区别的,不能混为一谈。10.3.2字符串与指针字符指针变量与字符数组的主要区别:(1)存储内容不同:字符指针变量中存储的是字符串的首地址,而字符数组中存储的是字符串本身(数组的每个元素存