设为首页 加入收藏

TOP

4.8.3 指针和字符串(3)
2013-10-07 15:40:18 来源: 作者: 【 】 浏览:88
Tags:4.8.3 指针 字符串

4.8.3  指针和字符串(3)

strcpy( )函数接受2个参数。第一个是目标地址,第二个是要复制的字符串的地址。您应确定,分配了目标空间,并有足够的空间来存储副本。在这里,我们用strlen( )来确定所需的空间,并使用new获得可用的内存。

通过使用strcpy( )和new,将获得"fox"的两个独立副本:

 

另外,new在离animal数组很远的地方找到了所需的内存空间。

经常需要将字符串放到数组中。初始化数组时,请使用=运算符;否则应使用strcpy( )或strncpy( )。strcpy( )在前面已经介绍过,其工作原理如下:

 
注意,类似下面这样的代码可能导致问题,因为food数组比字符串小:
 
在这种情况下,函数将字符串中剩余的部分复制到数组后面的内存字节中,这可能会覆盖程序正在使用的其他内存。要避免这种问题,请使用strncpy( )。该函数还接受第3个参数-要复制的最大字符数。然而,要注意的是,如果该函数在到达字符串结尾之前,目标内存已经用完,则它将不会添加空字符。因此,应该这样使用该函数:
 

这样最多将19个字符复制到数组中,然后将最后一个元素设置成空字符。如果该字符串少于19个字符,则strncpy( )将在复制完该字符串之后加上空字符,以标记该字符串的结尾。

警告:应使用strcpy( )或strncpy( ),而不是赋值运算符来将字符串赋给数组。

您对使用C-风格字符串和cstring库的一些方面有了了解后,便可以理解为何使用C++(www.cppentry.com) string类型更为简单了:您不用担心字符串会导致数组越界,并可以使用赋值运算符而不是函数strcpy( )和strncpy( )。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇4.8.4 使用new创建动态结构(1) 下一篇4.8.3 指针和字符串(2)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)