9.4 指向字符串的指针(新).pptVIP

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

C语言湖北职业技术学院单元9CHAPTER子目录SUBDIRECTORYCHAPTER*C语言湖北职业技术学院程序设计语言(C语言)指向字符串的指针指向字符串的指针前面几讲,我们学习了指针、指向一维数组的指针和指向二维数组的指针。在现实生活中,有一种数据类型,我们经常要用到,那就是字符串。比如,我们要求输入一串字母,将大写字母变小写,小写字母变大写;字符串的截取等等应用。在C语言中,字符串实际上就是字符类型的数组,那么也可以通过指针操作字符串。一、问题引入指向字符串的指针用字符数组作参数。删除字符串前n个字符并输出。二、任务描述指向字符串的指针三、相关知识1、指针和字符串对于字符串常量的操作,可以采用字符数组和字符指针两种形式实现。形式1:把字符串常量存放在一个字符数组之中。例如:chars[]=astring;数组s共由9个元素组成,其中s[8]中的内容是\0。实际上,在该字符数组定义的过程中,编译程序直接把字符串复写到数组中,即对数组s初始化。指向字符串的指针三、相关知识1、指针和字符串对于字符串常量的操作,可以采用字符数组和字符指针两种形式实现。形式2:用字符指针指向字符串,然后通过字符指针访问字符串存储区域。char*cp;cp=astring;指向字符串的指针三、相关知识输出字符串中n个字符后的所有字符voidmain(){char*ps=thisisabook;intn=10;ps=ps+n;printf(%s\n,ps);}指向字符串的指针三、相关知识2、动态存储分配使用数组存储数据时,数组的长度需要预先定义好,在整个程序运行过程中固定不变。但在很多情况下,并不能事先确定要使用多大的数组,导致数组定义大了,浪费存储空间;定义小了,存储空间不够。如何解决这个问题呢?这就需要动态内存分配。指向字符串的指针(一)malloc()函数函数原型为:void*malloc(unsignedintsize);调用形式:(类型说明符*)malloc(size)功能:在内存的动态存储区中分配一块长度为size字节的连续区域。函数的返回值为该区域的首地址。三、相关知识指向字符串的指针(二)calloc()函数函数原型为:void*calloc(unsignedn,unsignedsize);调用形式:(类型说明符*)calloc(n,size)功能:在内存动态存储区中分配n块长度为size字节的连续区域。函数的返回值为该区域的首地址。说明:calloc()函数与malloc()函数的区别仅在于一次可以分配n块区域。三、相关知识指向字符串的指针例如:p=(int*)calloc(3,sizeof(int));分配3个大小为int类型的存储单元,强制转换为int类型,并把其首地址赋予指针变量p。三、相关知识2、字符指针在字符串中的应用字符指针作参数,实现对字符串的操作。指向字符串的指针用字符数组作参数。删除字符串前n个字符并输出。四、任务分析指向字符串的指针五、任务实施#includestdio.hvoiddel_str(char*s,intn){char*p=s;if(nstrlen(s))/*如果n大于字符串的长度,直接删除所有字符*/{p[0]=\0;return;}s+=n;while(*p++=*s++);/*循环复制,直到最后将\0也复制过去*/}voidmain(){charstr[]=abcdef1234567890;intx=5;del_str(str,x);puts(str);}第三节:指向二维数组的指针五、任务实施初始状态:当执行s+=n;之后:指向字符串的指针【课堂任务】计算字符串的长度。指向字符串的指针指针和字符串用指针来操作字符串动态存储分配的两种形式小结THANKSFORWATCHING!TheCProgrammingLanguage**C语言湖北职业技术学院单元9CHAPTER子目录SUBDIRECTORYCHAPTER*C语言湖北职业技术学院**

文档评论(0)

爱因斯坦 + 关注
实名认证
文档贡献者

我爱达芬奇

1亿VIP精品文档

相关文档