- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中国石油大学c语第8章_字符串
第8章 字符串 回顾 一维数组的定义、初始化 一维数组元素输入/输出 二维数组的定义、初始化 二维数组元素的输入/输出 必须用数组处理的一些问题 教学目标 理解字符串常量 理解字符数组和字符串的异同 使用字符串输入/输出函数 使用字符串处理函数 理解指针与字符串的关系 使用字符指针数组 使用字符串作为函数参数 字符串简介 字符串常量 字符串常量是双引号括起的任意字符序列 字符串与字符数组 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串 字符串 一串以\0结尾的字符在C语言中被看作字符串 用双引号括起的一串字符是字符串常量,C语言自动为其添加\0终结符 C语言并没有为字符串提供任何专门的表示法,完全使用字符数组和字符指针来处理 字符数组 每个元素都是字符类型的数组,如 char name[20]; 字符数组和字符串的区别是:字符串的末尾有一个空字符‘\0‘,没有结束符就不能按照字符串处理。 一维字符数组的初始化 一维字符数组的初始化 问题: char ch[6]=123456; char ch[6]=1234567; char ch[6]=123; 输出数组元素的结果是什么?(看示例) 字符串的输入输出 对于字符串(字符数组),在程序中既可以逐个引用字符串中的单个字符(数组元素) 也可以一次引用整个字符串(字符数组) (与数值型数组的区别) 对字符数组逐个元素输入/输出 for (i=0; i10; i++) { s[i]=getchar(); } 字符串I/0函数 字符串示例 字符串I/0函数 字符串I/0函数 字符串示例 字符串示例 scanf和gets使用注意事项 scanf和gets都可以给字符数组赋值,scanf不能读入带空格的字符串,gets可以。 但是scanf和gets两种用法都不安全,当用户输入的字符个数多于字符数组的维数时,数组将产生越界。 scanf被公认为最易遭到黑客攻击的函数之一 gets()也没有提供限制输入字符串长度的方法,容易引起缓冲区溢出,给黑客攻击以可乘之机 对输入字符串长度有限制的函数调用 fgets(buf, sizeof (buf), stdin); 一维字符数组举例 统计字符串中每个字符出现的次数。 一维字符数组举例 #include stdio.h int main ( ) { int count[128]={0*128}; /* 统计数组,初始化时全为 0 */ char line[200]; int k=0; printf (Enter String:); gets (line); while (line[k]!=\0) /* 对字符进行统计 */ count [line[k++]]++; /* 将字符作为下标*/ for(k=0;k128;k++) { if(count[k]0) printf(%c=%d\t,k,count[k]);} return 0; } 一维字符数组举例 输入一行字符,将其中的每个字符从小到大排列后输出。 二维字符数组 二维字符数组的定义和初始化 二维字符数组 二维字符数组的引用 二维字符数组举例 例:输入英文的星期几,确定对应的数字。 可以查星期表,若发现与表中某项相同(英文的星期几), 则输出该字符串在表中的位置(序号);若查到表尾仍不相同, 则输出错误信息。 可以建立如下星期表: 二维字符数组举例 #include stdio.h int main ( ) { int i,k; char id[10]; char w_day[ ][10]={Sunday,Monday,Tuesday,Wednesday,Thursday,Friday, Saturday }; printf(Enter a string:); scanf(%s,id); for (i=0; i7; i++) { for(k=0;id[k]!=\0;k++) { if(w_day[i][k]==id[k]) continue; else break; } if (id[k] ==\0) break; } if (i7) printf (%s is %d\n, id, i); else printf (Error !\n);
您可能关注的文档
- 中国佛教、墨子韩非子英语介绍.ppt
- 中国公路全保护条例.ppt
- 中国公立医院皮肤科业务现状分析及发展思考2011325.ppt
- 中国企业跨国战略管理.ppt
- 中国养生文化介高嵘北京师范大学.ppt
- 中国全图各省地图.ppt
- 中国人民大公共经济学政府间财政关系d13z.ppt
- 中国写意鸟画欣赏51.ppt
- 中国农业经济学程农业经济学人民大学,程淑兰.ppt
- 中国出口信用保公司厦门分公司72.ppt
- 中国多次直拉单晶炉行业市场占有率及投资前景预测分析报告.pdf
- 中国多功能阀门行业市场占有率及投资前景预测分析报告.pdf
- 中国多工位直接成衣打印机行业市场占有率及投资前景预测分析报告.pdf
- 部编版九年级下册语文详细教学计划及教学进度安排.docx
- 宁夏吴忠市同心县四校2024-2025学年高一上学期期末联考试地理试题(解析版).docx
- 中国多点平均温度计行业市场占有率及投资前景预测分析报告.pdf
- 2024年重庆市高考物理试题含答案解析.docx
- 2024年天津市高考政治试题含答案解析.docx
- 2024年天津市高考物理试题含答案解析.docx
- 中国多弹簧泥浆密封行业市场占有率及投资前景预测分析报告.pdf
文档评论(0)