源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

strcat函数与strncat函数的深入分析

  • 时间:2021-09-22 10:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:strcat函数与strncat函数的深入分析
[b]函数原型:extern char *strcat(char *dest,char *src) [/b]参数说明:dest为一个目的字符串的指针,即被连接的字符串(在前),src为一个源字符串的指针(在后)。 [b]所在库名:#include <string.h> [/b][b]函数功能:[/b]把src所指字符串添加到dest结尾处实现字符串的连接,连接过程覆盖dest结尾处的'/0'。 [b]返回说明:[/b]src和dest所指内存区域不可以重叠,并且dest必须有足够的空间来容纳src的字符串返回指向dest的指针。 [b]其它说明:[/b]暂时无。 实例:
[u]复制代码[/u] 代码如下:
#include<string.h> #include<stdio.h> int main() ...{     char dest[100]="Hello,I am sky2098,I liking programing!";  //这里我们开辟了100个字节的空间,远远多于该字符串的空间大小,已备后面连接字符串后空间够用     char *src="gramk";     char *temp;     temp=strcat(dest,src);     if(temp!=NULL)     ...{         printf("%s",temp);     }     else     ...{         printf("You cause an error!");     }     return 0; }
[b]在VC++ 6.0 编译运行:[/b] [img]http://files.jb51.net/file_images/article/201305/2013053116335427.jpg[/img] 如果最初为dest分配空间不足时,比如我们这样: char *dest="Hello,I am sky2098,I liking programing!"; 连接字符串时就会发生异常: [img]http://files.jb51.net/file_images/article/201305/2013053116335428.jpg[/img] 通过char *dest="Hello,I am sky2098,I liking programing!";我们只是为dest分配了strlen("Hello,I am sky2098,I liking programing!")+1;个字节空间,而连接是在dest的“/0”上覆盖,而此时只有一个“/0”的空间大小,所以无法实现连接功能。 [b]函数原型:[/b][b]extern char *strncat(char *dest,char *src,int n) 参数说明:[/b]src为源字符串,dest为目的字符串,n为指定的src中的前n个字符。 [b]所在库名:#include <string.h> [/b][b]函数功能:[/b]把src所指字符串的前n个字符添加到dest结尾处,覆盖dest结尾处的'/0',实现字符串连接。 [b]返回说明:[/b]返回指针,连接后的字符串。 [b]其它说明:[/b]暂时无。 实例:
[u]复制代码[/u] 代码如下:
#include <string.h> #include <stdio.h> int main() ...{     char str1[100]="SKY2098,persist IN DOING AGAIN!";     char *str2="sky2098,must be honest!";     int n=15;     char *strtemp;     strtemp=strncat(str1,str2,n);   //将字符串str2中的前n个字符连接到str1的后面     printf("The string strtemp is:  %s  ", strtemp);     return 0; }
[b]在VC++ 6.0 编译运行:[/b] [img]http://files.jb51.net/file_images/article/201305/2013053116335429.jpg[/img] 实现了指定某个字符串中的字符连接到另一个字符串上的操作。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部