- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
字符串及其应用 C语言的字符串表示方法 字符串的常用处理方法及标准库函数 字符串表示方法 主要有两种方式来表示字符串,这两种方式是: 使用指向字符类型变量的指针 通过定义字符类型指针变量,并将字符串或字符串常量的首地址赋给该指针,此后可以用该指向字符串的指针变量来表示其所指向的字符串数据,例如 char *sPtr; *sPtr=”This is C String.”; 使用字符数组 首先定义字符类型的数组,然后将字符串数据的每一个字符依次存放到指定的字符数组中,此后的程序代码中可以使用该字符数组的名字表示其所存放的字符串数据。例如语句 char str[7]=”abcd” 字符串表示方法 两种字符串数据表示方式的根本区别 (1) 定义一个字符类型指针变量表示字符串 例如语句char *sPtr=”abcd”; 系统处理的方法是首先在系统的内存储器中分配一段连续的存储区域并存放指定的字符串常量,然后将该存储区域的起始地址(字符串常量的首地址)赋值给字符类型指针变量sPtr,字符指针变量与其所指向的字符串常量之间的关系如图7.1a所示。由于sPtr是指针变量,可以根据需要指向任意合法的字符数据对象,所以在此后的程序代码中任何修改其指向的操作都是合法的,例如使用语句sPtr=”1234”使得指针变量sPtr改变指向从表示字符串数据”abcd”转变成为表示字符串数据”1234”,sPtr与其所指向的字符串常量之间的关系如图7.1b所示。 字符串表示方法 字符串表示方法 (2) 定义字符类型数组表示字符串 例如语句char str[7]=”abcd”;, 其本质意义是首先为字符数组str按指定长度在系统的内存储器中分配连续的存储区域,字符数组的名字str表示这段连续存储区域的起始地址,然后将该存储区域的内容初始化为字符串数据”abcd”,字符数组str与其初始值之间的关系如图7.2所示。 字符串表示方法 程序代码中任何试图修改数组名str值的操作或者试图为数组整体赋值的操作都是错误的,请比较下面的两段代码: /*正确的程序代码段*/ char *sPtr=”abcd”; … sPtr=”1234”; /*改变指针变量sPtr的指向*/ /*错误的程序代码段*/ char str[7]=”abcd”; … str=”1234”;//错误赋值操作,试图将数组作为整体操作 字符串表示方法 字符数组初始化的两种主要方法 (1) 使用单个字符常量初始化字符数组 用单个字符初始化时,将常量表中的字符依次赋值给对应得字符数组元素。在初始化时应注意以下几点: 常量表中的最后一个字符应该是字符串结尾符号\0字符; 部分初始化时未赋值部分仍然是\0字符; 如果常量表中提供了所有的字符(包含\0),可以省略数组的长度; 下面是几个单个字符常量初始化字符数组的示例: char s1[9]={N, e, w, , Y, e, a, r, \0}; char s2[9]={H, e, a, d ,\0}; char s3[]={N, e, w, , Y, e, a, r, \0}; 字符串表示方法 (2) 使用字符串常量初始化字符数组 使用字符串常量对字符数组进行初始化时,系统会自动在末尾加上字符串结尾符号\0,但定义的字符数组必须提供足够的长度。在初始化时应该注意以下几点: 字符串常量只需要提供有效字符数据; 字符串常量不足以填满整个字符数组空间时仍然使用\0字符填充; 字符串常量数据可以使用花括号括住,也可以使用; 如果没有指定字符数组的长度,系统自动指定为字符串常量中有效字符的个数+1; 下面是几个字符串常量初始化字符数组的示例: char s1[80]={ New Year}; char s2[80]= New Year; char s3[]=New Year; //此时字符数组的长度为9 字符串的输入输出 字符串数据的输入 /*使用格式控制项%c*/ char str[10]; int j; for(j=0;j9;j++) scanf(“%c”,str[j]); str[j]=’\0’; /*为了保证字符串数据的完整性,自行处理字符
您可能关注的文档
- 高考英语二轮复习 专题2 第11课时 非谓语动词与with复合结构精品课件 大纲人教版(贵州专用.ppt
- 高考英语 历年完形常用词汇总.doc
- 高考英语二轮复习 专题2 第3课时 冠词精品课件 大纲人教版(贵州专用.ppt
- 高考英语二轮复习 专题1 第2课时 关注特殊变化引起的读音变化精品课件 大纲人教版(贵州专用.ppt
- 高考英语二轮复习 专题2 第17课时 情景交际精品课件 大纲人教版(贵州专用.ppt
- 高考英语二轮复习 专题2 第14课时 定语从句精品课件 大纲人教版(贵州专用.ppt
- 高考英语二轮复习 专题2 第4课时 代词精品课件 大纲人教版(贵州专用.ppt
- 高考英语二轮复习 专题2 第5课时 介词精品课件 大纲人教版(贵州专用.ppt
- 高考英语二轮复习 专题2 第8课时 动词及动词短语精品课件 大纲人教版(贵州专用.ppt
- 高考英语二轮复习 专题2 第6课时 形容词与副词精品课件 大纲人教版(贵州专用.ppt
- DB51T3206-2024三氧化二钒和五氧化二钒单位产品能源消耗限额.pdf
- 美丽公厕管理与服务规范.docx
- DB6543T013-2024自走式籽瓜收获机作业技术规程.pdf
- DB51T3214-2024天府通办服务导引工作指南.pdf
- DB51T3220-2024沙化土地治理生态效益监测规范.pdf
- DB4201T712.2-2024景观照明技术标准 第2部分运行与维护.pdf
- 《球墨铸铁直埋热水管道技术规程》.pdf
- DB4209T46-2024《地理标志产品培育和管理规范》.pdf
- DB4206T85-2024学龄前儿童营养配餐规范.pdf
- DB51T3218-2024残疾人家庭无障碍设施改造规范.pdf
最近下载
- 【产品手册】黑石Blackstone_业务宣传册Brochure_bxmix-brochure_市场.docx
- 诊断报告伪造.pptx
- {安全生产管理}港口安全知识培训PPT43页.pdf VIP
- 设备安装调试方案.docx VIP
- 宪法学(第二版)(马克思主义理论研究和建设工程重点教材)课件第8章“一国两制”与特别行政区制度.pptx
- 2024届衡阳市高三统一考试(一模)英语试卷(含答案).docx
- 2023中国婴童护肤白皮书.doc VIP
- 高中地理人教版(2019)选择性必修一 知识梳理.pdf
- 学习贯彻党的二十届三中全会精神测试题(含答案).docx VIP
- 中层干部测评表.doc VIP
文档评论(0)