,,详解C语言中strcpy()函数与strncpy()函数的使用

,,详解C语言中strcpy()函数与strncpy()函数的使用

本文主要介绍了C语言中strcpy()函数和strncpy()函数使用的详细说明,这是C语言入门学习中的基础知识。有需要的朋友可以参考一下。

C语言strcpy()函数:复制字符串

头文件:#include string.h

定义功能:

char *strcpy(char *dest,const char * src);

描述:strcpy()将把参数src字符串复制到参数dest指示的地址。

返回值:返回参数dest的字符串起始地址。

注意:如果参数dest指示的内存空间不够大,可能会导致缓冲区溢出的错误。写程序的时候请特别注意,或者用strncpy()代替。

模型

#包含字符串. h

main(){

char a[30]=' string(1)';

char b[]=' string(2)';

printf('before strcpy() :%s\n ',a);

printf('after strcpy() :%s\n ',strcpy(a,b));

}

执行结果:

strcpy()之前:字符串(1)

strcpy()之后:字符串(2)

C语言strncpy()函数:复制字符串的前n个字符

头文件:#include string.h

Strncpy()用来复制一个字符串的前N个字符,它的原型是:

char * strncpy(char *dest,const char *src,size _ t n);

【参数说明】dest是目标字符串指针,src是源字符串指针。

Strncpy()将字符串src的前n个字符复制到字符串dest。

与strcpy()不同,strncpy()没有将结束标记' \0 '附加到dest,这导致了许多不合理的问题,下面的示例将对此进行说明。

注意:src和dest引用的内存区域不能重叠,dest必须有足够的空间容纳N个字符。

[返回值]返回字符串dest。

【函数示例】复制四组字符串。

# includestdio.h

#includestring.h

int main(void){

char dest 1[20];

char src 1[]=' ABC ';

int n1=3;

char dest 2[20]=' * * * * * * * * * * * * * * * * * * * * * ';

char src 2[]=' ABC XYZ ';

int N2=strlen(src 2)1;

char dest 3[100]=' http://see . xidian . edu . cn/CPP/shell/';

char src 3[6]=' ABC XYZ ';//没有“\0”

int n3=20

char dest 4[100]=' http://see . xidian . edu . cn/CPP/u/马援/';

char src 4[]=' ABC \ 0 defghigk ';

int n4=strlen(src 3);

strncpy(dest1,src1,n1);//n1小于strlen(str1) 1,不会追加“\0”。

strncpy(dest2,src2,N2);//n2等于strlen(str2) 1,正好可以把src2末尾的' \0 '复制到dest2。

strncpy(dest3,src3,n3);//n3大于strlen(str3) 1,循环复制str3。

strncpy(dest4,src4,n4);//'\0 '出现在src4的中间

printf('dest1=%s\n ',dest 1);

printf('dest2=%s,dest2[15]=%c\n ',dest2,dest 2[10]);

printf('dest3=%s\n ',dest 3);

printf('dest4=%s,dest4[6]=%d,dest4[20]=%d,dest4[90]=%d\n ',dest4,dest4[6],dest4[20],dest 4[90]);

返回0;

}

VC6.0的运行结果:

MinGW操作结果:

从上面的运行结果可以看出,strncpy()很难控制,行为也很奇怪。使用strncpy()最安全方法是使n等于strlen(src) 1,也就是说,复制整个字符串并将' \0 '附加到dest。但这和strcmp()没什么区别。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: