c语言程序计与项目实践第15.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文档。上传文档
查看更多
第15章 字符串处理 本章的学习重点 ◆ 字符串拷贝函数strcpy ◆ 字符串链接函数strcat ◆ 字符串比较函数strcmp ◆ 字符串长度计算函数strlen ◆ 字符串查找函数strchr ◆ 字符串输入输出函数gets和puts ◆ 字符串特殊处理函数stricmp、strnset和strstr 15.1 字符串拷贝函数strcpy 字符串拷贝函数是最常用的字符串处理函数之一,计算机文档编辑中的文本拷贝就是一类典型的字符串拷贝过程,因此,字符串拷贝在工程设计中应用广泛。C语言提供了字符串拷贝函数strcpy(),使用该函数可以将已知的字符串拷贝到另一个内存区域中。但C语言库函数也存在其不足之处,使得函数在工程中的实际应用并不广泛。下面以strcpy()函数为例,说明库函数中定义的字符串处理函数的局限性。 15.1.1 库函数strcpy 函数名:strcpy 函数功能:把src所指由NULL结束的字符串复制到dest所指的数组中 函数声明:char *strcpy(char *dest, char *src); 说明:函数输入参数为两个char型指针dest和src,函数返回类型为char型指针。src和dest所指内存区域不可以重叠,dest所指的内存区域必须有足够的空间放置src所指的字符串。函数返回指向dest的指针。 范例15.1 strcpyfunc.c 一个数组中存储着一段电报电文,试调用函数strcpy,将这段电文复制到另外一个数组中,并打印出复制后的电文文件。 15.1.1 库函数strcpy 1.strcpy的两个参数 调用strcpy函数时,输入的两个参数应遵循一定的规则: 首先,指针或数组dest的存储区域必须足够大,以便能够容纳src所存储的字符串。 其次,src可以使用字符串常量表示,例如: char str[50]; strcpy(str, “People need not to work on Sunday”); 第三,字符串复制时会连同字符串结束符’\0’一同复制到目的数组dest中。 第四,可以使用参数指定复制字符串长度,例如,可以进行下面的函数调用方式: strcpy(str, “People need not to work on Sunday”, 10); 上述代码的作用是将字符串“People need not to work on Sunday”中前10个字符” People nee”复制到字符串str中,并取原字符数组中的字符。 15.1.1 库函数strcpy 2.strcpy函数原形 在C语言的库函数中,strcpy函数的源代码说明如下: 01 ;char *strcpy(dst, src) - copy one string over another 02 ;Purpose: 03 ;Copies the string src into the spot specified by 04 ;dest; assumes enough room. 05 ;Algorithm: 06 ;char * strcpy (char * dst, char * src) 07 ;{ 08 ; char * cp = dst; 09 ; while( *cp++ = *src++ ); /* Copy src over dst */ 10 ; return( dst ); 11 ;} 代码第1到第5行为微软对函数strcpy的说明,代码第6到11行为函数源代码说明。分析代码可以看出,源程序中存在如下问题: 没有检查输入的两个指针是否有效。 没有检查两个字符串是否以NULL结尾。 没有检查目标指针的空间是否大于等于原字符串的空间。 15.1.2 自定义函数strcpy 工程应用中,为了避免调用库函数对代码兼容的局限性,也经常自己定义strcpy函数,通常使用的strcpy函数程序代码如下: 01 char *strcpy(char *strDest, const char *strSrc) 02 { 03 if((NULL = = strDest)||( NULL = = strSrc)) 04 { 05 printf(Invalid argument(s)); 06 return; 07 } 08 char *strDestCopy=strDest; 09 while ((‘\0’!=*strDest++=*strSrc++)) 10 ; 11 *strDest = ‘

文档评论(0)

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

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

1亿VIP精品文档

相关文档