北京科技大学 《C语言》 第8章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京科技大学 《C语言》 第8章.ppt

* * * * * * * * 【例8.11】已知字符串str,从中截取一子串。要求 该子串是从str的第m个字符开始,由n个字符组成。 思路: 定义字符数组c 存放子串,字符指针变量p 用于 复制子串,利用循环语句从字符串str截取n个字符。 考虑到几种特殊情况: ① m位置后的字符数有可能不足n个,所以在循环读取字符时,若读到 \0 停止截取,利用break语句跳出循环。 ② 输入的截取位置m大于字符串的长度,则子串为空。 ③ 要求输入的截取位置和字符个数均大于0,否则子串为空。 8.2.2 指向字符串的指针变量 * * main( ) { char c[80], *p, *str=This is a string.; int i, m, n; printf(m,n=); scanf(%d,%d,m,n); if (mstrlen(str) || n=0 || m=0) printf(NULL\n); else { for (p=str+m-1,i=0; in; i++) if(*p) c[i]=*p++; else break; /* 如读取到 \0 则停止循环 */ c[i]=\0; /* 在c数组中加上子串结束标志 */ printf(%s\n,c); } } 从m位置读取n个字符送到c数组 要求位置m和长度n大于0 8.2.2 指向字符串的指针变量 * * 指针数组定义的一般形式: 数据类型标识符 *数组名[元素个数]; 在这个定义中由于“[ ]”比“*”的优先级高,所以数组名先与“[元素个数]”结合,形成数组的定义形式,“*”表示数组中每个元素是指针类型,“数据类型标识符”说明指针的目标变量的数据类型。例如: int *ip[10]; char *cp[5]; 8.2 指针与数组 8.2.3 指针数组 1. 指针数组的定义 指针数组就是数组中的每个元素均为 指针类型 * * 例如: char c[4][8]={Fortran,COBOL,BASIC,Pascal}; char *cp[4]={c[0],c[1],c[2],c[3]}; char *str[5]={int,long,char,float,double}; int a[2][3]; int *p[2]={a[0],a[1]}; 8.2.3 指针数组 2. 指针数组初始化 cp C 数 组 cp[0] F o r t r a n \0 cp[1] C O B O L \0 cp[2] B A S I C \0 cp[3] P a s c a l \0 例如: char c[4][8]={Fortran,COBOL,BASIC,Pascal}; char *cp[4]={c[0],c[1],c[2],c[3]}; char *str[5]={int,long,char,float,double}; int a[2][3]; int *p[2]={a[0],a[1]}; str[0] i n t \0 str[1] l o n g \0 str[2] c h a r \0 str[3] f l o a t \0 str[4] d o u b l e \0 * * 【例8.13】用0~6分别代表星期日至星期六,当输入其中任意 一个数字时,输出相应英文单词。 main( ) { char *weekname[7]={Sunday,Monday,Tuesday, Wednesday,Thursday,Friday,Saturday}; int week; printf(Enter week No.: ); scanf(%d,week); if (week=0 week7) printf(week No.%d —— %s\n,week,weekname[week]); } 3. 利用字符指针数组处理多个字符串 利用字符指针数组处理长度不等的字符串, 可节省存储空间。 8.2.3 指针数组 * * 如果一个指针的目标变量是一个指针类型变量,则此指针为指向指针的指针变量,也称为多级指针变量。 二级指针变量定义的一般形式: 数据类型标识符 **指针

文档评论(0)

dreamclb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档