首页 > 其他分享 >C语言里的几个拷贝函数memcpy、memset、strcpy、strncpy

C语言里的几个拷贝函数memcpy、memset、strcpy、strncpy

时间:2022-11-10 15:05:51浏览次数:39  
标签:__ const cdecl void memset C语言 char strcpy size


#include<string.h>

1. src和dest所指内存区域不能重叠,函数返回指向dest的指针。memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度

void *memcpy(>const void *src,size_t count );

2. 把buffer所指内存区域的前count个字节设置成字符c.说明:返回指向buffer的指针。


void *memset ( void  *dest,  int         c         ,size_tcount );


3. srcdest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串


char        *strcpy      ( char                  *strDestination,const char                 *strSource);
wchar_t *wcscpy ( wchar_t *strDestination,const wchar_t *strSource);
unsigned char *_mbscpy( unsigned char *strDestination, constunsigned char *strSource );

4. 把src所指示的以'\0'结尾的字符串的前n个字节复制到dest所指的数组中。复制时连同字符串的'\0'一起被复制。


char           *strncpy      (char                    *strDest,const char                  *strSource,size_t count );
wchar_t *wcsncpy ( wchar_t *strDest,const wchar_t *strSource,size_t count );
unsigned char *_mbsncpy (unsigned char *strDest,const unsigned char *strSource,size_t count );

 STRING.H 

#ifdef  _M_MRX000
_CRTIMP void * __cdecl memcpy(void *, const void *, size_t);
_CRTIMP int __cdecl memcmp(const void *, const void *, size_t);
_CRTIMP void * __cdecl memset(void *, int, size_t);
_CRTIMP char * __cdecl _strset(char *, int);
_CRTIMP char * __cdecl strcpy(char *, const char *);
_CRTIMP char * __cdecl strcat(char *, const char *);
_CRTIMP int __cdecl strcmp(const char *, const char *);
_CRTIMP size_t __cdecl strlen(const char *);
#else
void * __cdecl memcpy(void *, const void *, size_t);
int __cdecl memcmp(const void *, const void *, size_t);
void * __cdecl memset(void *, int, size_t);
char * __cdecl _strset(char *, int);
char * __cdecl strcpy(char *, const char *);
char * __cdecl strcat(char *, const char *);
int __cdecl strcmp(const char *, const char *);
size_t __cdecl strlen(const char *);
#endif

标签:__,const,cdecl,void,memset,C语言,char,strcpy,size
From: https://blog.51cto.com/u_15872025/5841630

相关文章

  • 三子棋(C语言版)
    1:>函数定义game.h#define_CRT_SECURE_NO_WARNINGS1#defineROW3#defineCOL3#include<stdio.h>#include<stdlib.h>#include<time.h>//头文件中声明函数////初始化棋......
  • c语言中位运算符及用法 异或
    a&b: 0000000000000000  a&b=0x0a|b:0000000001011111  a|b=0x5fa^b:0000000001011111  a^b=0x5f~a :1111111111110000   ~a=0xfff0转载:https:......
  • 计算机等级考试二级C语言模拟试卷(八)
    一、选择题(每小题1分,共40分)(1)下列链表种,其逻辑结构属于非线性结构的是 A)循环链表      B)双向链表        C)二叉链表         D)带链的栈(2)设循......
  • 计算机等级考试二级C语言模拟试卷(七)
    一、选择题(每小题1分,共40分)1、下列关于循环队列的叙述,正确的是A.循环队列是队列的一种顺序存储结构B.循环队列是队列的一种链式存储结构C.循环队列是非线性结构D.循环队列......
  • 计算机等级考试二级C语言模拟试卷(六)
    一、选择题(每小题1分,共40分)(1)下列叙述中正确的是A)算法就是程序B)设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可靠性D)以上三种说法都不对(2)下列关于......
  • C语言二分查找
    #include<stdio.h>intbinary_search(intarr[],intk,intsz){intleft=0;intright=sz-1;while(left<=right){intmid=(left+right)/2;if(arr[mid]<k){ left=mi......
  • C语言指针运算
    指针运算指针可以加减运算,但不可以乘除运算。在指针中p++并不是加一,而是以素的值为单位加一,指向下一个单位,加多少字节 要看类型是什么。在指针变量名字前面加*比......
  • C语言——程序环境和预处理
    程序的翻译环境和执行环境编译+链接预处理一.程序的翻译环境和执行环境在ANSIC标准的任何一种实现中,存在两种不同的环境:翻译环境:该环境中源代码会被转换为可执行的机器......
  • 计算机等级考试二级C语言模拟试卷(四)
    一、选择题(每小题1分,共40分)   (1)下列关于栈叙述正确的是A)栈顶元素最先能被删除                 B)栈顶元素最后才能被删除C)......
  • C语言选择结构的执行条件
    在C语言中,有些细节常常被忽略:选择结构的执行条件我们知道,if()和elseif()是判断程序是否执行的函数。需要注意的是,这两个函数判断的是括号内的值是逻辑真(true)还是逻辑......