c语言字符串未初始化strcat,C语言中字符串常用函数strcat与strcpy的用法介绍
strcpy原型声明:extern char *strcpy(char* dest, const char *src);
头文件:#include
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
函数实现:
复制代码 代码如下:
/**********************
* C语言标准库函数strcpy的一种典型的工业级的最简实现
* 返回值:目标串的地址。
* 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。
* 参数:
* strDestination 目标串
* strSource 源串
***********************/
char *strcpy(char *strDestination,const char *strSource)
{
assert(strDestination!=NULL && strSource!=NULL);
char *strD=strDestination;
while ((*strD++=*strSource++)!='\0');
return strDestination;
}
/*
GNU-C中的实现(节选):
*/
char* strcpy(char *d, const char *s)
{
char *r=d;
while((*d++=*s++));
return r;
}
/* while((*d++=*s++)); 的解释:两层括号是为了取赋值表达式的值,
而赋值表达式的值为左操作数,所以在复制NULL后,循环停止 */
strcat原型extern char *strcat(char *dest,char *src);
用法#include
在C++中,则存在于头文件中。
功能把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
说明src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
函数实现:
复制代码 代码如下:
//将源字符串加const,表明其为输入参数
char *strcat(char *strDest, const char *strSrc)
{
// 后文return address,故不能放在assert断言之后声明address
char *address = strDest;
assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言
while(*strDest) //是while(*strDest!='\0')的简化形式
{
//若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,
//那么strDest将指向'\0'的下一个位置。/所以要在循环体内++;因为要是*strDest最后指
//向该字符串的结束标志'\0'。
strDest++;
}
while(*strDest++ = *strSrc++)
{
NULL; //该循环条件内可以用++,
} //此处可以加语句*strDest='\0';无必要
return address; //为了实现链式操作,将目的地址返回
}
时间: 2013-07-09
c语言字符串未初始化strcat,C语言中字符串常用函数strcat与strcpy的用法介绍相关推荐
- R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts))
R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts)) ...
- C语言中字符串常用函数--strcat,strcpy
strcpy 原型声明:extern char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 功能:把从src ...
- c语言字母随机初始值,C语言的未初始化的数组的值为什么是随机的
突然想起来前几天同学问我为什么没有初始化的数组的值是随机的,发现这个困惑自己也是存在的,所以自己总结的心得. 1. 首先,并不是所有未初始化的数组的值都是随机的.对于没有初始化的数组,分两种情况: ( ...
- python语言format是什么意思_Python代码中str.format()函数有什么功能呢?
摘要: 下文讲述Python代码中str.format()函数的简介说明,如下所示: str.format()函数功能 用于将字符串格式化,然后输出 str.format()函数语法 通过{} 和:替 ...
- c语言把一个字符从指定文件中读取的函数,C语言中对文件最基本的读取和写入函数...
C语言中对文件最基本的读取和写入函数 C语言read()函数:读文件函数(由已打开的文件读取数据)头文件: #include 定义函数: ssize_t read(int fd, void * buf ...
- 关于C语言中一些常用函数的说明
1.I/O函数 (1)scanf函数: int scanf(const char *format-..); 从标准输入流stdin中按格式format将数据写到参数表中;若操作成功,返回写到参数表中的 ...
- python字符串拼接数字_解决Python中字符串和数字拼接报错的方法
解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...
- python字符串函数运算_Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】 原创...
前面简单介绍了python基本运算,这里再来简单讲述一下Python字符串相关操作 1. 字符串表示方法 >>> "www.jb51.net" #字符串使用单引号 ...
- java 循环拼接字符串用分号隔开_Java 8中字符串拼接新姿势:StringJoiner
在为什么阿里巴巴不建议在for循环中使用"+"进行字符串拼接一文中,我们介绍了几种Java中字符串拼接的方式,以及优缺点.其中还有一个重要的拼接方式我没有介绍,那就是Java 8中 ...
最新文章
- java对文本文件进行操作:读取、修改、添加、删除、重命名等
- php 删除文件时间,php删除文件后重建,文件创建时间(filectime)未变化怎么解决??...
- python内置函数教程_Python内置函数详解
- 注册表 ControlSet001、ControlSet002以及CurrentControlSet
- Kafka 设计架构原理详细解析(超详细图解)
- mysql delimiter的作用_MySQL数据库中delimiter的作用概述
- BZOJ 4736 温暖会指引我们前行 LCT+最优生成树+并查集
- 小米全系865旗舰大降价,买就完事了!
- MVC保存二进制到数据库,并显示文件的方法(图片显示)
- PAT B1035 插入与归并 (25 分)
- 深入分析Linux自旋锁【转】
- glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
- 纪录片:美国中情局解密 CIA Declassified 2013
- Excel:一个Excel自动计算公式,一个Excel手动计算?多进程
- 国内外php主流开源cms汇总(2010年1月) .
- ibm imm挂载iso文件_IBM IMM调试方式
- BT Dongle设计介绍
- 重庆科技学院数理学院mysql的期末考试_数据库期末考试重庆科技学院A.doc
- PMBOK及PMP考试精要
- Oracle按时间分组查询