《C语言程序设计案例式教程》课件 第8章 字符串_第1页
《C语言程序设计案例式教程》课件 第8章 字符串_第2页
《C语言程序设计案例式教程》课件 第8章 字符串_第3页
《C语言程序设计案例式教程》课件 第8章 字符串_第4页
《C语言程序设计案例式教程》课件 第8章 字符串_第5页
已阅读5页,还剩137页未读 继续免费阅读

下载本文档

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

文档简介

第8章字符串《C语言程序设计案例式教程(AI助学)》学习目标/Target了解字符串的概念,能够说出字符串的存储特点。

掌握字符数组与字符串的关系,能够使用字符数组定义字符串。掌握字符串与指针的关系,能够使用指针操作字符串。掌握gets()函数与puts()函数的使用方法,能够调用gets()函数与puts()函数完成字符串的输入与输出操作。掌握字符串长度计算函数strlen()的使用方法,能够调用strlen()函数完成字符串的长度计算。学习目标/Target掌握strchr()函数、strrchr()函数和strstr()函数的使用方法,能够调用strchr()函数、strrchr()函数与strstr()函数完成字符串中单个字符和子串的查找。

掌握strcat()函数和strncat()函数的使用方法,能够调用strcat()函数和strncat()函数完成字符串的连接。掌握strcpy()函数和strncpy()函数的使用方法,能够调用strcpy()函数和strncpy()函数完成字符串的复制。掌握strcmp()函数和strncmp()函数的使用方法,能够调用strcmp()函数和strncmp()函数完成字符串的比较。掌握单个字符操作函数的使用方法,能够调用单个字符操作函数完成字符的判断、转换等操作。章节概述/Summary日常生活中的信息大多是通过文字描述的,例如,发送电子邮件、在论坛上发表评论、记录学生信息都需要用到文字。程序中同样会用到文字,程序中的文字被称作文本信息,C语言中这些文本信息称为字符串。本章将对字符串及字符串的相关函数进行详细讲解。目录/Contents010203【案例8-1】取名器【案例8-2】员工入职【案例8-3】统计单词的个数04【案例8-4】分隔字符串目录/Contents050607【案例8-5】回文诗【案例8-6】你中有我【案例8-7】字符串替换08【案例8-8】点名册的排序目录/Contents091011【案例8-9】密码【案例8-10】去除字符串两端的空格【案例8-11】回文字符12使用AIGC工具设计实践案例【案例8-1】取名器01案例描述名字承载了父母对孩子的期望,很多父母在婴儿孕育之初就开始思考,只为给孩子取一个寓意美好的名字,以寄托对孩子美好的祝愿。本案例要求编写一个程序,模拟简单的取名器,根据输入的出生日期(出生月份与出生日)输出名字,具体要求如下。(1)从键盘依次输入出生月份与出生日。(2)根据输入的出生月份,获取名字的第一个字。(3)根据输入的出生日,获取名字的第二个字。知识需求出生月出生日第一个字第二个字存储汉字的数组存储汉字的数组字符串与数组相关知识汉字为字符串了解字符串的概念,能够说出字符串的存储特点。学习目标知识讲解1.字符数组字符数组定义格式如下。char数组名[数组大小];字符数组定义示例:charch[6];字符数组初始化示例:charc[5]={'h','e','l','l','o'};知识讲解1.字符数组1.字符数组字符数组也是通过索引访问数组元素。c[0]; //访问字符数组c中的第1个元素,值为hc[1]; //访问字符数组c中的第2个元素,值为ec[2]; //访问字符数组c中的第3个元素,值为l知识讲解1.字符数组字符数组初始化有以下4点注意事项。初始项中的元素个数不能多于字符数组的长度,否则编绎器会报错,提示初始值设定项太多。01charstr[2]={'a','b','c'}; 知识讲解1.字符数组错误写法如果初始项中的元素个数小于数组长度,则空余元素均会被赋值为空字符(’\0’)。02charstr[5]={'a','b','c'};//后面剩余的两个元素均被赋值为'\0'知识讲解1.字符数组字符数组初始化有以下4点注意事项。如果没有指定数组的长度,则编译器会根据初始值列表中初始值的个数为数组分配内存。03charstr[]={'a','b','c'}; 知识讲解1.字符数组字符数组初始化有以下4点注意事项。与“charstr[3]={'a','b','c'};”的作用相同掌握字符数组与字符串的关系,能够使用字符数组定义字符串。学习目标知识讲解2.字符串知识讲解2.字符串字符串是由数字、字母、下划线、空格等各种字符组成的一串字符,由一对英文半角状态下的双引号(“”)括起来。"abcd@#$_32"""字符串示例。字符串末尾默认都有一个‘\0’作为结束符知识讲解2.字符串C语言没有字符串类型,字符串以字符数组存储,使用字符数组存储字符串时,必须以空字符‘\0’(空字符)结尾。字符串“abcde”存储到字符数组知识讲解2.字符串字符串由字符数组进行存储,那么可以直接使用一个字符串常量来为一个字符数组赋值。charchar_array[6]={“hello”}; charchar_array[]={"hello"};charchar_array[]="hello";字符串可以通过%s格式化输出。printf("%s",char_array);结果为hello掌握字符串与指针的关系,能够使用指针操作字符串。学习目标知识讲解3.字符型指针知识讲解3.字符型指针字符型指针可以指向一个字符串,字符串使用字符数组进行存储,因此,指向字符串的指针其实是指向了存储字符串的数组。chararr[6]="nihao"; //定义一个字符数组arr,存储字符串nihaochar*p=arr; //定义一个字符型指针p,指向数组arr通过字符型指针访问字符数组中的元素,有两种方式:通过索引访问和通过指针运算访问两种方式。p[1]; //访问字符串"nihao"的第2个字符,值为i*(p+1); //访问字符串"nihao"的第2个字符,值为i以%s格式输出字符型指针,可以直接输出字符串,而非字长串地址。printf("%s",p); 知识讲解3.字符型指针结果为nihao字符型指针也可以使用字符串直接初始化。char*p1="nihao";使用字符数组初始化字符型指针之前,字符串已经存储于字符数组,字符数组存储在哪个内存区域,字符串就存储在哪个内存区域。VS在使用字符串常量初始化字符型指针时,系统会先将字符串常量存入常量区,然后用指针存储字符串的起始地址。知识讲解3.字符型指针3.字符串与指针字符型指针也可以使用字符串直接初始化。char*p1="nihao";知识讲解3.字符型指针字符指针与字符数组在初始化、赋值等方面有一些区别。初始化可以对字符指针进行赋值,但不能对数组名进行赋值。//给字符指针赋值char*p="hello"; //等价于char*p=NULL;p="hello";//给数组赋值charstr[6]="hello";str="hello"; //错误知识讲解3.字符型指针01字符指针与字符数组在初始化、赋值等方面有一些区别。赋值方式字符数组(或字符串)之间只能单个元素赋值或使用复制函数;字符指针则无此限制。//字符指针赋值char*p1="hello",*p2=NULL;p2=p1;//字符数组赋值charstr1[6]="hello",str2[6];str2=str1;//错误知识讲解3.字符型指针02字符指针与字符数组在初始化、赋值等方面有一些区别。运算字符指针可以通过指针运算改变其值,而数组名是一个指针常量,其值不可以改变。//字符指针char*p="IloveChina";p+=7;//数组名charstr[6]=”hello”;str+=3; //错误,数组名是指针常量,不可被更改知识讲解3.字符型指针03巩固前面所学知识,能够利用前面所学知识实现案例8-1。学习目标案例实现案例实现1.案例设计1定义两个字符类型的指针数组,第一个数组存储12个汉字;第二个数组存储31个汉字。定义两个int类型的变量month和day,分别表示出生月份与出生日。调用scanf()函数从键盘输入month和day变量的值。234以month为索引读取第一个数组中的汉字作为名字的第一个字。定义两个int类型的变量month和day,分别表示出生月份与出生日。调用scanf()函数从键盘输入month和day变量的值。56案例实现1.案例设计本案例中可以实现的效果图如下。代码实现案例实现2.完整代码

【案例8-2】员工入职02案例描述公司招聘员工成功之后,第一步就是录入员工信息,假如某公司招聘了一名新员工,人事部门录入姓名、年龄、性别、手机号码、邮箱等信息。请编写一个程序,帮助人事部门完成信息的录入,并在信息录入完成之后,显示员工完整信息以便核对。知识需求信息以字符串存储,要解决的问题:字符串输入输出。scanf()函数printf()函数gets()函数puts()函数格式复杂格式简单专用于处理字符串掌握gets()函数的使用方法,能够调用gets()函数完成字符串的输入操作。学习目标知识讲解1.gets()函数知识讲解1.gets()函数gets()函数用于读取字符串。char*gets(char*str);gets()函数读取换行符之前的所有字符(不包括换行符本身),并在字符串的末尾添加一个空字符'\0'用来标记字符串的结束,读取的字符串会以指针形式返回。知识讲解1.gets()函数gets()函数用于读取字符串。char*gets(char*str);gets()函数应用示例。charphoneNumber[12];//定义一个字符数组gets(phoneNumber);//读取数据存入数组中知识讲解getc()函数单个字符输入函数getc()函数用来读取用户输入的单个字符。intgetc(FILE*stream);getc()函数应用示例。intnum=getc(stdin);知识讲解单个字符输入函数getchar()函数getchar()函数用于从标准输入中读取一个字符。intgetchar(void);getchar()函数应用示例。intnum=getchar();掌握puts()函数的使用方法,能够调用puts()函数完成字符串的输出操作。学习目标知识讲解2.puts()函数知识讲解2.puts()函数puts()函数用来输出字符串。intputs(constchar*str);puts()函数应用示例。chararr[20]="helloworld";puts(arr);知识讲解putc()函数单个字符输出函数putc()函数用于将一个字符输出到指定流中。intputc(intc,FILE*fp);putc()函数应用示例。intnum=putc('a',stdout);知识讲解putchar()函数单个字符输出函数putchar()函数用于将一个字符输出到标准输出。intputchar(intchar);putchar()函数应用示例。intnum=putchar('a');巩固前面所学知识,能够利用前面所学知识实现案例8-2。学习目标案例实现案例实现1.案例设计3.输出字符串2.输入字符串1.定义字符数组定义存储姓名的字符数组,大小为20。定义存储手机的字符数组,大小为12。定义存储邮箱的字符数组,大小为50。调用gets()函数输入字符串。调用puts()函数输出字符串。案例实现2.完整代码本案例中可以实现的效果图如下。代码实现

【案例8-3】统计单词的个数03【案例8-3】统计单词个数巩固前面所学知识,能够利用前面所学知识实现案例8-3。学习目标案例描述上中学时老师经常要求一篇作文不少于800字,工作后在从事一些文字类工作时也经常要统计一篇文章、一本书等有多少字。本案例要求编写一个程序,统计一个英文句子中单词的个数,具体要求如下。(1)从键盘输入一个英文句子,单词之间使用空格隔开。(2)统计句子中的英文单词个数。案例实现(1)(2)(3)(4)使用gets()函数将输入的字符串保存在字符数组str中。使用if语句判断输入的第一个字符是否为空字符:如果是,则输出“空句子!”的提示;如果不是,则说明字符串正常,开始执行else语句后的代码块。采用for语句遍历字符数组,如果遇到空字符,立即结束循环;如果没有遇到空字符,则判断字符是否为空格。如果是,则把单词数量加1;反之不进行任何操作,继续执行循环语句,判断下一个字符。把单词个数输出。1.案例设计案例实现本案例中可以实现的效果图如下。代码实现2.完整代码

【案例8-4】分隔字符串04案例描述本案例要求编写一个程序,实现字符串的分隔,具体要求如下。(1)从键盘连续输入字符串,按每6个字符为一组对字符串进行分隔并输出。(2)对于长度不是6的整数倍的字符串,需要在其后面补充字符“*”,空字符串不进行处理。(3)每个字符串的长度小于20。案例描述示例:abcabcabca分隔之后:abc***abcabca*****知识需求以长度分隔获取字符串长度判断长度是否为6的整数倍strlen()函数知识需求掌握字符串长度计算函数strlen()的使用方法,能够调用strlen()函数完成字符串的长度计算。学习目标知识讲解字符串长度计算函数strlen()函数用于计算字符串长度,计算出的长度不包括末尾的‘\0’。unsignedintstrlen(char*s);strlen()函数应用示例。strlen("hello"); //获取字符串hello的长度char*str="12abc";strlen(str); //获取字符串指针str指向字符串的长度知识讲解字符串长度计算函数字符串长度计算函数VSstrlen()函数C语言标准库函数获得字符串所占内存的有效字节数参数是字符串或以‘\0’结尾的字符数组结果在运行时计算sizeof运算符sizeof是运算符获得创建的对象的字节数参数可以是数组、指针、类型、对象、函数等在编译时完成计算知识讲解字符串长度计算函数1.案例设计010203从键盘连续输入字符串,可以将输入操作的相关语句放在while语句中。按每6个字符为一组分隔字符串,可以通过“%6s”的格式限制每次最多读取6个字符,剩下的字符保留在标准输入缓冲区中,以待下次读取。在字符串读取完成之后,使用6减去字符串的长度,对于长度不是6的整数倍的字符串,使用for语句在其后面输出要补充的“*”。1.案例设计案例实现案例实现本案例中可以实现的效果图如下。代码实现1.案例设计2.完整代码

【案例8-5】回文诗05【案例8-5】回文诗巩固前面所学知识,能够利用前面所学知识实现案例8-5。学习目标案例描述回文是汉语特有的一种字序回环往复的修辞方法,应用这种修辞手法的文体称为回文体。回文诗在创作手法上突出了诗反复咏叹的艺术特色,读起来绵延无尽,给人荡气回肠的感觉。案例描述《题金山寺》

苏轼潮随暗浪雪山倾,远浦渔舟钓月明。桥对寺门松径小,槛当泉眼石波清。迢迢绿树江天晓,蔼蔼红霞晚日晴。遥望四边云接水,碧峰千点数鸥轻。《题金山寺》

苏轼轻鸥数点千峰碧,水接云边四望遥。晴日晚霞红霭霭,晓天江树绿迢迢。清波石眼泉当槛,小径松门寺对桥。明月钓舟渔浦远,倾山雪浪暗随潮。回文诗本案例要求编写一个程序,将苏轼的《题金山寺》倒序输出,即将其对应的回文诗输出。案例实现案例设计1234定义一个字符数组,将《题金山寺》以字符串的形式存储到数组中。倒序遍历数组。在倒序输出时,第一个句号不输出,因此从倒数第2个元素“轻”字开始输出。输出一个汉字之后,将索引移动至前一个汉字,一个汉字两个字节。1.案例设计1.案例设计案例实现本案例中可以实现的效果图如下。代码实现1.案例设计2.完整代码

【案例8-6】你中有我06案例描述“你中有我,我中有你”本指两个人亲密无间,但这里是指一个字符串包含另一个字符串。例如,字符串"hello,China"中包含字符串"hello",字符串"hello,China"称为主串,字符串"hello"称为子串。本案例要求编写一个程序,查找一个字符串中是否包含指定的子串,具体要求如下。(1)从键盘输入主串和子串。(2)如果主串包含子串,则输出提示信息“找到了”,如果主串中不包含子串,则输出提示信息“没找到子串”。知识需求在主串中查找子串,需要用到字符串查找函数,C语言提供的常用的字符串查找函数:strchr()、strrchr()、strstr()。掌握strchr()函数、strrchr()函数和strstr()函数的使用方法,能够调用strchr()函数、strrchr()函数与strstr()函数完成字符串中单个字符和子串的查找。学习目标知识讲解字符串查找函数C语言提供了strchr()、strrchr()和strstr()这3个函数来实现字符串的查找功能。strchr()函数strrchr()函数strstr()函数知识讲解字符串查找函数01strchr()函数strchr()函数用于查找指定字符在指定字符串中第一次出现的位置。char*strchr(constchar*str,charc);strchr()函数应用示例。char*p="abcdef";char*idx1=strchr(p,‘e’); //返回指向字符e处的指针char*idx2=strchr(p,‘t’); //返回NULL知识讲解字符串查找函数字符串查找函数02strrchr()函数strrchr()函数用于查找指定字符在指定字符串中最后一次出现的位置。char*strrchr(constchar*str,charc);strrchr()函数应用示例。char*p="abcedef";char*idx1=strchr(p,‘e’); //返回指向倒数第1个字符e处的指针char*idx2=strchr(p,‘t’); //返回NULL知识讲解字符串查找函数字符串查找函数03strstr()函数strstr()函数用来查找字符串中是否包含指定的字符串(子串)。char*strstr(constchar*haystack,constchar*needle);strstr()函数用法示例。char*p="abcdef";char*idx1=strstr(p,“abc”); //返回指向子串“abc”的指针char*idx2=strstr(p,“nihao”); //返回NULL知识讲解字符串查找函数【案例8-6】你中有我巩固前面所学知识,能够利用前面所学知识实现案例8-6。学习目标案例实现根据提示分别输入主串和子串。用strstr()函数来判断主串中是否包含子串。根据函数返回值输出最终结果。字符串查找函数1.案例设计案例实现代码实现本案例中可以实现的效果图如下。字符串查找函数2.完整代码

【案例8-7】字符串替换07案例描述本案例要求编写一个程序,模拟办公软件的字符串替换功能,具体要求如下所示。(1)从键盘输入字符串1。(2)从键盘输入字符串1中要替换的子串。(3)从键盘输入字符串2。(4)将字符串1中要替换的子串替换为字符串2。(5)输出替换后的字符串1。(6)字符串的长度都不超过100。案例描述示例,从键盘输入字符串:Hello,China //字符串1Hello //字符串1的子串nihao //字符串2替换之后:nihao,China知识需求Hello,Chinanihao将”,China”截取出来nihao,China拼接→存储到新内存nihao,China用到字符串拼接、复制函数掌握strcat()函数和strncat()函数的使用方法,能够调用strcat()函数和strncat()函数完成字符串的连接。学习目标知识讲解字符串连接函数知识讲解字符串连接函数C语言提供了strcat()函数和strncat()函数来实现连接字符串的功能。strncat()函数strcat()函数strcat()函数1strcat()函数用于进行字符串的连接。char*strcat(char*dest,constchar*src);将src拼接到dest后面,dest必须要有足够空间strcat()函数应用示例。charstr1[20]="abcdef";charstr2[10]="abcwdfg";char*p="HELLO";strcat(str1,p);//将字符串p连接到str1后面

strcat(str2,p);//将字符串p连接到str2后面知识讲解字符串连接函数1.字符串连接函数strncat()函数2strncat()函数也用于实现字符串的连接,它可以限制拼接长度。char*strncat(char*dest,constchar*src,size_tn);第3个参数n表示从src中取出n个字符拼接到dest后面strcat()函数应用示例。charstr1[20]="abcdef";charstr2[10]="abcwdfg";strncat(str1,str2,3);知识讲解字符串连接函数掌握strcpy()函数和strncpy()函数的使用方法,能够调用strcpy()函数和strncpy()函数完成字符串的复制。学习目标知识讲解2.字符串复制函数知识讲解C语言提供了两个常用的字符串复制函数,用于实现字符串复制功能。strncpy()函数strcpy()函数2.字符串复制函数strcpy()函数1strcpy()函数用于实现字符串复制。char*strcpy(char*dest,constchar*src);第3个参数n表示从src中取出n个字符拼接到dest后面strcpy()函数功能:将src字符串复制到dest指向的地址空间,从首地址开始复制。复制完成,返回指向dest空间的指针。注意:src和dest所指内存区域不可以重叠且dest必须有足够的空间容纳src的字符串。知识讲解2.字符串复制函数2.字符串复制函数strcpy()函数1strcpy()函数应用示例。chararr[15]="hello,China";char*p="ABCD";strcpy(arr,p);知识讲解2.字符串复制函数strcpy()函数1以“%s”格式输出数组arr中的元素时,遇到"ABCD"后的'\0

'

就结束输出,因此只会输出字符串"ABCD"。通过索引可以访问数组arr中的其他元素。arr[6];//第7个元素,值为Carr[7];//第8个元素,值为h知识讲解2.字符串复制函数strncpy()函数2strncpy()函数可以实现指定长度的字符串的复制。char*strncpy(char*dest,constchar*src,intn);strncpy()函数应用示例。chararr[15]="hello,China";char*p="ABCD";strncpy(arr,p,3); //将字符串p的前3个字符复制到arr中知识讲解2.字符串复制函数【案例8-7】字符串替换巩固前面所学知识,能够利用前面所学知识实现案例8-7。学习目标案例实现010203定义3个大小为100的字符数组,分别存储字符串1、子串、字符串2。调用scanf()函数分别从键盘输入三个字符串。定义替换函数replace(),在函数内部,分别计算出字符串1、子串、字符串2的长度;调用strstr()函数查找到子串在字符串1中的位置。申请一块堆内存空间,将子串前的字符串存储到新空间,再分别将字符串2、子串后面的字符串拼接到新空间。字符串查找函数1.案例设计案例实现代码实现本案例中可以实现的效果图如下。字符串查找函数2.完整代码

【案例8-8】点名册的排序08案例描述点名册一般都是有序的,通常按照名字的首字母进行排序,例如Aliy、Bobo、Cady等。如果两个名字的首字母相同,则比较第二个字母,以此类推。本案例要求编写一个程序,实现点名册的排序,具体要求如下所示。(1)使用指针数组存储指向5个名字的指针。(2)按照名字的首字母进行排序,如果首字母相同,则比较第二个字母,以此类推。知识需求点名册排序需要比较字符字符串比较函数对点名册进行排序,就是对字符串进行比较排序,这需要使用字符串比较函数,C语言提供了多个字符串比较函数。因此,要想顺利完成本案例,需要学习字符串比较函数的相关知识掌握strcmp()函数和strncmp()函数的使用方法,能够调用strcmp()函数和strncmp()函数完成字符串的比较。学习目标知识讲解字符串比较函数strcmp()函数用于比较两个字符串的内容是否相等,相等返回0,否则返回非0值。intstrcmp(constchar*str1,constchar*str2);strcmp()函数应用示例。char*p1="nihao";char*p2="hello";intnum=strcmp(p1,p2);

01strcmp()函数知识讲解字符串比较函数值为1函数strcmp()只能接收字符指针作为参数,不接收单个字符。如果传入的是单个字符,例如‘a’,那么‘a’会被视为指针,程序将报错。知识讲解字符串比较函数【案例8-8】点名册的排序巩固前面所学知识,能够利用前面所学知识实现案例8-8。学习目标字符串比较函数strncmp()函数用来比较两个字符串中前n个字符是否完全一致,一致返回0,否则返回非0值。intstrncmp(constchar*str1,constchar*str2,size_tn);strncmp()函数应用示例。char*p1="abcdef";char*p2="abcwdfg";intnum1=strncmp(p1,p2,3); //比较前3个字符,相等,值为0intnum2=strncmp(p1,p2,4); //比较前4个字符,不相等,值为-102strncmp()函数知识讲解字符串比较函数案例实现01020304自我评价自定义一个选择排序法的函数。在主函数中定义一个指针数组,指针元素分别指向5个名字。调用排序函数完成从小到大的排序。将排序结果输出到屏幕上。字符串比较函数1.案例设计案例实现代码实现本案例中可以实现的效果图如下。字符串比较函数2.完整代码

【案例8-9】密码09案例描述本案例就要求读者设计一个算法,实现简单的加密解密过程,具体要求如下所示。(1)从键盘输入待加密的字符串。(2)密码长度不超过16个字符。案例描述(3)对字符串进行加密,加密规则如下。当字符是英文字母时,使用字母表中该字母的后一个字母替换,同时字母变换大小写,例如将'a'替换为'B'。如果该字母是字母表中的最后一个字母,则替换为第一个字母,例如将字母'z'替换为'A’。当内容是数字时,把该数字加1,如0替换为1,1替换为2,9替换为0。其他字符不作改动。(4)解密方法为加密的逆过程。知识需求123加密解密操作单个字符串单个字符串操作函数掌握单个字符操作函数的使用方法,能够调用单个字符操作函数完成字符的判断、转换等操作。学习目标知识讲解单个字符操作函数C语言提供了很多操作单个字符的函数,这些函数都包含在头文件ctype.h中。下面介绍几个常用的单个字符操作函数。isalnum()函数isalpha()函数isspace()函数isblank()函数islower()函数isupper()函数知识讲解单个字符操作函数tolower()函数toupper()函数单个字符操作函数isalnum()函数用于检测一个字符是否为英文字母或数字。intisalnum(intc);01isalnum()函数isalpha()函数用于检测一个字符是否为英文字母。intisalpha(intc);02isalpha()函数知识讲解单个字符操作函数isspace()函数用于检测一个字符是否为空白符intisspace(intc);03isspace()函数知识讲解单个字符操作函数字符ASCII值说明''32空格'\t'9水平制表符'\n'10换行符'\r'13回车符'\v'11垂直制表符'\f'12换页符单个字符操作函数isblank()函数用于检测一个字符是否为空格或水平制表符。intisblank(intc);04isblank()函数isblank()函数是C99标准新增的一个函数,它只能识别空格和水平制表符。知识讲解单个字符操作函数单个字符操作函数islower()函数用于检测一个字符是否为小写字母。intislower(intc);05islower()函数isupper()函数用于检测一个字符是否为大写字母。intisupper(intc);06isupper()函数知识讲解单个字符操作函数单个字符操作函数tolower()函数用于将大写字母转换为小写字母。inttolower(intc);07tolower()函数toupper()函数用于将小写字母转换为大写字母。inttoupper(intc);08toupper()函数知识讲解单个字符操作函数案例实现01020304定义一个大小为16的字符数组,用于存储字符串。调用gets()函数从键盘输入的字符串。定义加密函数encode(),在函数内部遍历字符数组,对每个字符进行判断并进行相应操作,如果是英文字母或数字,按照对应规则进行转换,其他字符不做改动。定义解密函数decode(),解密规则与加密规则相反。单个字符操作函数1.案例设计案例实现本案例中可以实现的效果图如下。单个字符操作函数2.完整代码案例实现单个字符操作函数2.完整代码

【案例8-10】去除字符串两端的空格10【案例8-10】去除字符串两端的空格巩固前面所学知识,能够利用前面所学知识实现案例8-10。学习目标案例描述在实际生活工作中处理数据时,经常会对数据进行格式调整,如对齐、去除空格等,这样可以提高数据的可读性。现在有一个语句:"Ambitiondoesnotstand,thereisnothingtodo."。请编写一个程序,去除该语句两端的空格。案例实现123定义两个函数movel()和mover(),分别用于去掉字符串左边的空格和右边的空格。在movel()函数中,遍历字符串中的字符,如果是空格就跳过;否则就将接下来的字符复制到一个新开辟的数组中。在mover()函数中,从尾部遍历字符串中的字符,如果是空格就赋值为'\0',直到不是空格。单个字符操作函数1.案例设计案例实现代码实现本案例中可以实现的效果图如下。单个字符操作函数2.完整代码

【案例8-11】回文字符串11【案例8-11】回文字符串巩固前面所学知识,能够利用前面所学知识实现案例8-11。学习目标案例描述回文串:正读和反读都一样的字符串,它具有对称性,如"level"、"noon"、"civic"、"refer"等。本案例要求编写一个程序,从键盘输入一个英文字符串,判断该字符串是否是回文字符串。案例实现算法分析通过观察可知,去掉回文字符串首尾的字符之后,剩下的字符串仍然是回文字符串,可以通过不断地去除首尾的字符来缩小问题的规模。在去掉字符串的首尾字符后,会得到一个新字符串,此时仍然要检查新字符串是否为回文字符串,可以用递归方法解决此问题。单个字符操作函数1.案例设计(1)案例实现当字符串的长度为奇数时,对字符串进行检查,最后会剩下最中间的一个字符,不会影响判断,即当检查到长度为1且所有对应的首尾字符都相同的时候,说明字符串是回文字符串。当字符串长度为偶数时,首尾的字符两两比较到最后,不会有未检查的字符,即检查到长度为0且所有对应的首尾字符都相同的时候,说明此字符串是回文字符串

温馨提示

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

评论

0/150

提交评论