版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目六批量数据的处理第六讲字符串处理函数C语言程序设计任务驱动式教程任务一字符串处理函数1.字符串输出函数格式:puts(字符数组名或字符串)功能:将一个字符串(以‘\0’为结束标志)输出到终端。输出的字符串中可以包含转义字符。例如:charstr[]={“China\nBeijing”};puts(str);输出:
ChinaBeijing在输出时系统将字符串结束标志‘\0’转换成‘\n’,即输出完字符串后换行。printf()在输出字符串后光标不换行,而puts()输出字符串后光标回车换行。printf()与puts()的不同:包含在头文件stdio.h专门的标准字符串输入输出函数:gets或puts任务一字符串处理函数【实例】字符串的输出---puts函数示例。#include<stdio.h>main(){charstr[]="boy\ngirl";puts(str);}程序运行结果为:
boygirl专门的标准字符串输入输出函数:gets或puts任务一字符串处理函数2.字符串输入函数格式:gets(字符数组)功能:从终端输入一个字符串(可包含空格)以回车为输入结束标志,将接收到的字符依次赋值给字符数组各个元素,并自动在字符串末尾加结束标记‘\0’。例如:gets(str);注意:用puts和gets函数只能输入或输出一个字符串,不能写成:puts(str1,str2);或gets(str1,str2);【示例】scanf()在输入字符串时遇空格即结束,也就是说,scanf()只能输入不带空格的字符串。charstr[20];gets(str);将Howareyou?存入数组str中,并自动添加‘\0’。输入:Howareyou?<回车>scanf()与gets()的不同:包含在头文件stdio.h任务一字符串处理函数【实例】字符串的输入---gets函数示例。#include<stdio.h>main(){chars[15];printf("Pleaseinputastring:\n");gets(s);puts(s);}程序运行结果为:
Pleaseinputastring:Howareyou?<回车>Howareyou?专门的标准字符串输入输出函数:gets或puts任务一字符串处理函数包含在头文件string.h常见的字符串处理函数(1)字符串连接函数格式:strcat(字符数组1,字符数组2)作用:把字符串2接到字符串1的后面,把得到的结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。charstr1[13]=“Hello“;charstr2[7]=“World!“;printf(“%s”,strcat(str1,str2));HelloWorld!①字符数组str1的最小长度应为:“len1+len2+1”。②原字符串1后面的‘\0’取消,在新字符串1的末尾增加一个‘\0’。【示例】任务一字符串处理函数包含在头文件string.h常见的字符串处理函数字符串连接函数strcat格式:strcat(字符数组1,字符数组2)功能:把字符数组2连到字符数组1后面返值:返回字符数组1的首地址说明:字符数组1必须足够大连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消,新串最后加‘\0’【实例
】strcat函数示例。
#include<string.h>main(){chars1[20]="Youare";chars2[]="astudent.";strcat(s1,s2);puts(s1);}程序运行结果为:
Youareastudent.任务一字符串处理函数包含在头文件string.h常见的字符串处理函数
例如:
charstr1[10];charstr2[]={“china”};
strcpy(str1,str2);或strcpy(str1,“china”);
执行后str1的内容为:china\0\0\0\0\0(2)字符串拷贝函数格式:strcpy(字符数组1,字符串2)作用:将字符串2复制到字符数组1中去,函数调用后得到一个函数值——字符数组1的地址。charstr1[6]=“happy“;charstr2[6]=“day“;printf(“%s”,strcpy(str1,str2));day字符数组1的长度不应小于字符串2的长度。【示例】任务一字符串处理函数包含在头文件string.h常见的字符串处理函数字符串拷贝函数strcpy格式:strcpy(字符数组1,字符串2)功能:将字符串2,拷贝到字符数组1中去返值:返回字符数组1的首地址说明:字符数组1必须足够大拷贝时‘\0’一同拷贝
不能使用赋值语句为一个字符数组赋值【实例
】strcpy函数示例。
#include<string.h>main(){chars1[15],s2[]="CLanguage";strcpy(s1,s2);puts(s1);}程序运行结果为:
CLanguage任务一字符串处理函数不能用赋值运算符“=”来实现将一个字符串常量或字符数组直接赋给一个字符数组。charstr1[6],str2[6];str1=”Hello”;
/*赋值错误*/str2=str1;
/*赋值错误*/charstr1[6],str2[6];strcpy(str1,”Hello”);strcpy(str2,str1);【说明】任务一字符串处理函数定义两个数组,练习字符串各个函数的应用。(1)数组1中输入Howareyou?,使用gets,使用puts输出。(2)数组2中输入Happyday!,使用gets,使用puts输出。(3)将数组2连接到数组1(4)将数组2复制到数组1(5)比较数组1和数组2【说明】任务一字符串处理函数#include<stdio.h>#include<string.h>voidmain(){chars1[25],s2[12];printf("Pleaseinput2string:\n");gets(s1);puts(s1); gets(s2);puts(s2);printf("%s",strcat(s1,s2)); putchar('\n');printf("%s",strcpy(s1,s2)); putchar('\n');printf("%d",strcmp(s1,s2)); putchar('\n');}【说明】任务一字符串处理函数包含在头文件string.h常见的字符串处理函数【示例】(3)字符串比较函数strcmp(字符串1,字符串2)作用:比较字符串1和字符串2,分3种情况:①字符串1>字符串2,函数返回值为正整数。②字符串1=字符串2,函数返回值等于0。③字符串1<字符串2,函数返回值为负整数。charstr1[6]=“happy“;charstr2[4]=“day“;printf(“%d”,strcmp(str1,str2));1任务一字符串处理函数字符串比较函数strcmp格式:strcmp(字符串1,字符串2)功能:比较两个字符串比较规则:对两串从左向右逐个字符比较(ASCII码),直到遇到不同字符或‘\0’为止返值:返回int型整数,a.若字符串1<
字符串2,返回负整数
b.若字符串1>
字符串2,返回正整数
c.若字符串1==字符串2,返回零说明:字符串比较不能用“==”,必须用strcmp【实例】strcmp函数示例。#include<string.h>main(){intk;staticcharstr1[15],str2[]="CLanguage";printf("inputastring:\n");gets(str1);k=strcmp(str1,str2);if(k==0)printf("str1=str2\n");if(k>0)printf("str1>str2\n");if(k<0)printf("str1<str2\n");}若输入CProgram输出结果为str1>str2任务一字符串处理函数不能直接用关系运算符“>,>=,<,<=”来实现将两个字符串的大小的比较。charstr1[6],str2[6];if(str1<str2)
/*赋值错误*/…… charstr1[6],str2[6];if(strcmp(str1,str2)>0) ……【说明】任务一字符串处理函数包含在头文件string.h常见的字符串处理函数(4)测字符串长度函数格式:strlen(字符数组)作用:测试字符串的长度(不包括串结束标志‘\0’),函数的返回值是字符串的长度。charstr[10]=“happy”;printf(“%d”,strlen(str));可以直接测试字符串常量的长度:strlen(“happy”);5【示例】任务一字符串处理函数字符串长度函数strlen格式:strlen(字符数组)功能:计算字符串长度返值:返回字符串实际长度,不包括‘\0’在内例对于以下字符串,strlen(s)的值为:(1)chars[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};(2)chars[]=“will”;答案:14【实例
】】strlen函数示例。
#include<string.h>main(){intn;charstr[10]={"china"};n=strlen(str);printf("Thelenthofthestringis%d\n",n);}程序运行结果为:
Thelenthofthestringis5【示例】任务一字符串处理函数【程序
】不使用strcat函数,编程将两个字符串连接在一起。【问题分析】已知两个字符串str1和str2实现两个字符串连接的设计的思路如下:(1)寻找字符串str1的尾部。(2)将字符串str2中的每个字符依次连接到字符串str1的尾部。(3)在字符串str1的尾部添加一个‘\0’。任务一字符串处理函数#include<stdio.h>intmain(){
charstr1[100],str2[100];inti=0,j=0;printf("请输入字符串str1:\n");gets(str1);printf("请输入字符串str2:\n");gets(str2);while(str1[i]!='\0')
/*寻找字符串str1的尾部*/
i++;
/*将字符串str2中的每个字符依次连接到字符串str1的尾部*/while(str2[j]!='\0')
{ str1[i]=str2[j]; i++; j++;
}str1[i]='\0';
/*在字符串str1的尾部添加一个'\0'*/printf("连接后的字符串str1:\n");puts(str1);return0;}(1)(2)(3)请输入字符串str1:good↙请输入字符串str1:bye↙连接后的字符串str1:goodbye任务一字符串处理函数5.大小写转换函数——strlwr函数和strupr函数①strlwr函数的一般格式为:strlwr(字符数组名)功能:将字符串中的字符转换成小写。②strupr函数的一般格式为:strupr(字符数组名)功能:将字符串中的字符转换成大写。Stringlowercase['ləʊəˌkeɪs]小写字母stringuppercase任务一字符串处理函数例:编程实现将一字符串中的字符转换成小写输出,再转换成大写输出。#include<stdio.h>#include<string.h>intmain(){ chars[]="howAREYou?"; /*初始化字符串s*/ strlwr(s); /*将s中的字符转换成小写*/ puts(s); /*输出s*/ strupr(s); /*将s中的字符转换成大写*/ puts(s); /*输出s*/ return0;}用字符串常量初始化时,字符数组的下标可以省略,其数组元素的个数由赋值的字符串长度决定。运行结果:拓展提高任务一【程序】删除一个字符串中指定位置上的字符。【问题分析】若一个字符串str为“abcedf”,输入带删除的字符序号m=3,删除后得到的新的字符串str为“abedf”。实现该功能的设计的思路如下:(1)在一个字符串中找到待删除的指定字符。(2)将指定位置后的字符依次向前移动一个位置。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全国摄影艺术展览纪实类试题及解析
- 《计算机网络技术项目化教程》B卷答案
- 来料质量免检供应商管理自查报告
- 进度款支付申请方案
- 2026四川环保监测考试题及答案
- 雨课堂学堂在线学堂云《运动与康复(通识课)(广西)》单元测试考核答案
- 2025年证券从业资格考试真题及答案
- 粮油加工厂消防安全自查整改措施报告
- 2026年美妆行业客服人员产品咨询培训方案
- 铸造碳化钨熔炼破碎工岗前岗位晋升考核试卷含答案
- 专题11 环境与发展(讲义全国适用)(原卷版)
- (2026年)成人术后口渴症状评估与管理的专家共识课件
- 2026年中国口含烟行业发展展望及投资策略报告
- 2024年全国青少年航天创新大赛航天知识竞赛试题及答案
- 全国大学生化学实验竞赛试题及答案
- 全国预防接种技能竞赛实践操作训练题库及答案
- 预制梁架设安全培训课件
- 教师相关法律知识培训课件
- 生产设备维修及保养记录表
- 制药企业成本核算流程
- 藏医霍尔美疗法课件
评论
0/150
提交评论