memcpy.memset.sprintf.snprintf,strcmp

来源:互联网 发布:php 安装 sendmail 编辑:程序博客网 时间:2024/06/05 02:42

项目中有很多代码都是c++,了解了上边几个关键字,今天大致整理下:看下边:

memcpy就是memory copy 内存拷贝,这个函数需要你传递三个参数,第一个参数就是目标地址,第二个就是源地址,第三个就是要考呗从零开始的多大的源地址,功能就是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。

memset简单的理解就是一个清空函数,我用的最多的就是清空,

void *memset(void *s, int ch, size_t n);
函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。
memset:作用是在一段内存块中填充某个给定的值,它是对较大结构体或数组进行清零操作的一种最快方法。

sprintf

原型

int sprintf( char *buffer, const char *format, [ argument] …
参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据
返回值
返回写入buffer 的字符数,出错则返回-1. 如果 buffer 或 format 是空指针,且不出错而继续,函数将返回-1,并且 errno 会被设置为 EINVAL。
sprintf 返回被写入buffer 的字节数,结束字符‘\0’不计入内。即,如果“Hello”被写入空间足够大的buffer后,函数sprintf 返回5。
使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了可能buffer溢出。解决这个问题,可以考虑使用 snprintf函数,该函数可对写入字符数做出限制。
strcpy() sprintf() strcat() 存在安全隐患, 其对应的安全版为:
strncpy() snprintf() strncat()

strcmp:就是比较两个字符串,注意,这个可是只能比较字符串的,文档中使用是这样的:

我们知道穿进的两个参数都是字符串,返回的是一个整型的值,
当str1<str2,返回负值;
当str1=str2,返回0;
当str1>str2,返回正值。
两个字符串会逐个字符进行比较,当遇到'\0'结束。

0 0
原创粉丝点击