1、知知 识识 回回 顾顾1.1.指针与一维数组指针与一维数组2.2.指针与二维数组指针与二维数组问问 题题 引引 出出1.1.字符串是非常重要的数据类型字符串是非常重要的数据类型2.2.在编程中经常要处理字符串在编程中经常要处理字符串 第第7 7章章就是要研究字符串的处理问题就是要研究字符串的处理问题主主 要要 内内 容容7.1 7.1 字符串的存储字符串的存储目的要求目的要求复习思考题复习思考题7.2 7.2 指针与字符串指针与字符串7.3 7.3 字符串输入输出字符串输入输出7.4 7.4 字符串处理函数字符串处理函数7.1 7.1 字符串的存储字符串的存储1.1.存储方法存储方法(1)(1
2、)字符串由字符型的字符串由字符型的数组数组进行存储进行存储(2)(2)存放时依次存放各字符的存放时依次存放各字符的ASCIIASCII码值码值末尾以末尾以空字符空字符结束结束2.2.语句格式语句格式charchar 数组名数组名 元素个数元素个数 =字符串常量字符串常量;7.2 7.2 指针与字符串指针与字符串1.1.字符串存储在数组中,可以通过指针来处理字符串存储在数组中,可以通过指针来处理2.2.用指针指向串的方法用指针指向串的方法char*ps=“Good day”;(2)(2)用指针指向数组用指针指向数组char s=“Good day”;char*ps=s;(3)(3)用指针数组指向
3、多个串用指针数组指向多个串char*ps3=“Wangli”,“Sunli”,“Zhaona”;(1)(1)把字符串常量直接赋给指针把字符串常量直接赋给指针7.3 7.3 字符串输入输出字符串输入输出(1)(1)把从键盘上输入的字符串存储到数组把从键盘上输入的字符串存储到数组1.1.使用使用scanfscanf输入串输入串scanf(scanf(“%s”“%s”,数组名数组名););char s20;scanf(“%s”,s);(2)(2)不能录入空白字符不能录入空白字符2.2.使用使用printfprintf输出串输出串printf(printf(“%s”“%s”,地址地址););举举例例3
4、.3.使用使用getsgets输入串输入串gets(gets(数组名数组名 ););(1)(1)把从键盘上输入的字符串存储到数组把从键盘上输入的字符串存储到数组char s20;gets(s);(2)(2)可以录入空白字符可以录入空白字符4.4.使用使用putsputs输出串输出串把指定地址开始的字符串输出到屏幕后把指定地址开始的字符串输出到屏幕后换行换行 puts(puts(地址地址 ););举举例例7.4 7.4 字符串处理函数字符串处理函数1.strlen1.strlen函数函数(1)(1)函数原型函数原型 intint strlenstrlen(const char(const cha
5、r *stringstring);(2)(2)函数功能函数功能 返回参数返回参数stringstring所指向所指向串的长度串的长度,即除空字符外的,即除空字符外的字符个数字符个数 2.strcpy2.strcpy函数函数(1)(1)函数原型函数原型 charchar *strcpystrcpy(char(char*to_string,to_string,const charconst char *from_stringfrom_string););(2)(2)函数功能函数功能 把参数把参数from_stringfrom_string指向的一个串指向的一个串(源串源串)连同结束符连同结束符00
6、一起复制一起复制到参数到参数to_stringto_string指向的另一个串指向的另一个串(目标串目标串),返回目标串的,返回目标串的首地址首地址 举举例例(3)(3)注意事项注意事项 第一个参数一定是第一个参数一定是字符型的数组字符型的数组且长度要且长度要足够大足够大(1)(1)函数原型函数原型 intint strcmpstrcmp(const char(const char *string1,string1,const charconst char *string2string2););(2)(2)函数功能函数功能 比较两个参数所指向的字符串的大小,返回一个比较两个参数所指向的字符串的
7、大小,返回一个整数整数 若若string1 string2,返回值返回值1若若string1=string2,返回值,返回值0若若string1 string2,返回值返回值-13.3.strcmpstrcmp函数函数(3)(3)注意事项注意事项 n字符串比较是从头到尾依次比较字符串比较是从头到尾依次比较对应位置字符的对应位置字符的ASCII码值码值的大小的大小n结果一旦确定就停止结果一旦确定就停止n两个串只有长度相同且每个位置的字符也相同才是相等关系两个串只有长度相同且每个位置的字符也相同才是相等关系(1)(1)函数原型函数原型 char char*strcatstrcat(char(cha
8、r*string1string1,const char,const char*string2string2););(2)(2)函数功能函数功能 把把string2连接到连接到string1的后面生成一个的后面生成一个新串新串,返回新串的,返回新串的首地址首地址4.4.strcatstrcat函数函数举举例例(3)(3)注意事项注意事项 第一个参数一定是第一个参数一定是字符型的数组字符型的数组且长度要且长度要足够大足够大目目 的的 要要 求求1.1.理解字符串、字符串长度等概念理解字符串、字符串长度等概念2.2.掌握使用数组存储串的方法掌握使用数组存储串的方法3.3.掌握使用指针指向串的方法掌握
9、使用指针指向串的方法4.4.掌握字符串的输入输出方法掌握字符串的输入输出方法5.5.掌握字符串处理的方法掌握字符串处理的方法6.6.掌握常用字符串处理函数及其使用方法掌握常用字符串处理函数及其使用方法复习思考题复习思考题说明:题目前面的说明:题目前面的*代表问题的重要程度代表问题的重要程度*2.2.如何存储字符串如何存储字符串?*3.3.如何让指针指向字符串如何让指针指向字符串?*1.1.解释下列名词解释下列名词*4.4.如何通过指针处理字符串如何通过指针处理字符串?*5.5.输入输出字符串的函数有哪些输入输出字符串的函数有哪些?如何使用?如何使用?*6.6.常用的字符串处理函数有哪些常用的字符串处理函数有哪些?如何使用?如何使用?(1)(1)字符串字符串 (2)(2)字符串长度字符串长度 (3)(3)空串空串 (4)(4)空字符空字符