`

c字符串拷贝操作

 
阅读更多
#include <string.h>

char *strcpy(char *dest,char *src);
char *strdup(const char *s);
char *strndup(const char *s, size_t n);
void *memcpy(void *dest, const void *src, int n)
void *memmove( void* dest, const void* src, size_tcount )

strcpy 把src所指由NULL结束的字符串复制到dest所指的数组中,src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串,返回指向dest的指针。
strdup()主要是拷贝字符串s的一个副本,由函数返回值返回,这个副本有自己的内存空间,和s不相干。
strndup()就是,拷贝的时候,最多拷贝n个字符,如果s的长度大于n,后面的就略去。
memcpy 从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中,与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节,如果目标数组destin本身已有数据,执行memcpy()后,将覆盖原有数据(最多覆盖n)。如果要追加数据,则每次执行memcpy后,要将目标数组地址增加到你要追加数据的地址;注意,source和destin都不一定是数组,任意的可读写的空间均可。
memmove由src所指内存区域复制count个字节到dest所指内存区域,src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针。

code for example:
//str copy
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define BUFFER_SIZE 128
int main(){
char s1[]="Linux C Programming";
char s2[]={'a','b','c','\0'};//must add \0
char s[]={'a','b','c'};
char d1[BUFFER_SIZE];
char d2[BUFFER_SIZE];
//功能:把src所指由NULL结束的字符串复制到dest所指的数组中
strcpy(d1,s1);
strcpy(d2,s2);
printf("%s\n",d1);
printf("%s\n",d2);
//返回指向被复制的字符串的指针,所需空间由malloc()分配且可以由free()释放
char *dup=strdup(s2);
printf("%s\n",dup);
free(dup);
//而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等,根据其第3个参数决定复制的长度
char men[BUFFER_SIZE];
memcpy(men,s,3);
men[strlen(s)]='\0';
printf("%s\n",men);
//void *memmove( void* dest, const void* src, size_t count),由src所指内存区域复制count个字节到dest所指内存区域,src和dest所指内存区域可以重叠,但复制后dest内容会被更改。函数返回指向dest的指针
memmove(s1,s1+6,(strlen(s1)-6));
s1[strlen(s1)-6]='\0';
printf("%s\n",s1);
return 0;
}
分享到:
评论

相关推荐

    字符串操作函数大全(String)

    C 语言提供了多种字符串拷贝函数,例如 strdup、strcpy、strncpy 等。 strdup 函数 strdup 函数是字符串拷贝函数之一,它可以将源字符串拷贝到目的字符串中。该函数的原型为: `char *strdup(const char *s)` ...

    将字符串str1 拷贝到str2中

    ### 字符串拷贝知识点详解 #### 一、概述 在C语言中,字符串是由字符组成的数组,并且最后一个字符必须是空字符`'\0'`。字符串操作是编程中的常见需求,例如拷贝一个字符串到另一个字符串。本篇文章将详细探讨如何...

    在C语言函数中调用汇编语言程序实现字符串的拷贝

    在我们的例子中,`strCopy.s`文件很可能是包含汇编代码的字符串拷贝函数。这个函数可能会使用到如`LDR`(加载寄存器)、`STR`(存储寄存器)和`ADD`(加法)等指令来处理内存中的数据。 下面是一个简单的示例,展示...

    C实现内存拷贝以及字符串拷贝函数

    在C语言编程中,内存拷贝和字符串拷贝是两个非常基础且重要的操作,它们分别由`memmove()`和`strcpy()`函数实现。本文将详细探讨如何在C语言中实现这两个函数,理解其工作原理,并通过一个示例程序来演示它们的用法...

    字符串拷贝函数.docx

    在计算机编程中,字符串拷贝是常见的操作,特别是在处理文本数据时。本文将详细讨论两种常用的字符串拷贝函数——`memcpy`和`strcpy`,以及它们在C语言中的应用。 `memcpy`函数是C标准库中的一个通用内存拷贝函数,...

    字符串拷贝函数.pdf

    在编程中,字符串拷贝是常见的操作,C语言提供了多种函数来实现这一功能,包括`strcpy`、`sprintf`和`memcpy`。这三个函数虽然都能完成字符串拷贝,但它们的功能特性和适用场景有所不同。 首先,`strcpy`函数是专门...

    字符串拷贝函数 (2).docx

    在计算机编程中,字符串拷贝是常见的操作,用于将一个字符串的内容复制到另一个字符串中。在C语言中,有多种函数可以实现这个目的,其中包括`memcpy`、`strcpy`和`snprintf`。下面我们将详细探讨这三个函数以及它们...

    实现C语言字符串操作的库函数

    "C语言字符串操作库函数详解" ...我们可以使用C语言实现字符串操作的库函数,包括字符串长度计算、字符串拷贝和字符串比较等等。这些库函数可以帮助我们更方便地进行字符串操作,并提高我们的编程效率。

    字符串拷贝,最好用snprintf。

    ### 字符串拷贝,最好用snprintf 在C语言编程中,字符串处理是非常常见的操作之一,其中涉及到字符串复制、连接等操作时,开发者通常会遇到`strncpy`、`strncat`以及`snprintf`这三个函数。本文将详细介绍这三种...

    汇编操作字符串

    本话题将详细讲解如何使用汇编语言操作字符串,特别是实现字符串拷贝、求字符串大小以及字符串比较,这些功能在C语言中对应的库函数分别是`memcpy`、`strcpy`、`strcmp`和`strlen`。 首先,我们要理解汇编中的基本...

    C++字符串完全指南.rar_C 字符串_字符串_字符串操作_读字符串

    在C++编程语言中,字符串处理是至关重要的一个部分,特别是在编写各种应用程序时。这篇“C++字符串完全指南”深入浅出地介绍了C++中处理字符串的方法,是初学者不可多得的学习资源。下面我们将详细探讨C++中的字符串...

    C语言字符串函数大全C/C++基础 字符串操作大全

    根据提供的信息,我们可以详细探讨几个重要的C语言字符串处理函数,这些函数是进行字符串操作的基础工具。下面我们将逐一介绍这些函数的功能、用法以及提供具体的示例代码。 ### 1. stpcpy #### 功能 `stpcpy` 函数...

    c语言字符串操作(包括字符串各种操作)

    1. 字符串拷贝:strcpy()和memcpy() strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目录字符串中,当遇到字符串末尾的null字符(\0)时,它会删去该字符,并结束拷贝。 memcpy()函数可以拷贝...

    c/c++字符串操作大全

    strcpy - 字符串拷贝 - **函数定义**: ```c char* strcpy(char* dest, const char* src); ``` - **功能**:此函数用于将一个字符串(`src`)完整地复制到另一个字符串(`dest`)中。 - **参数**: - `dest`:...

    C语言字符串操作大全

    另一个 `strcpy` 函数的出现可能是文档错误重复,它的作用与第一个相同,即字符串拷贝。 `strcspn` 函数用于计算字符串 `str1` 中开始出现 `str2` 中字符的子串长度,也就是在 `str1` 中第一次出现 `str2` 任何字符...

    字符串操作类CString 类

    1. **构造与初始化**:`CString`提供了多种构造函数,可以用于创建空字符串、拷贝其他字符串,或者从C风格的字符数组、`const char*`指针等初始化。 2. **操作符重载**:`CString`支持常见的字符串操作符重载,如`+...

    字符串处理函数

    strcpy 函数可以将一个字符串拷贝到另一个字符串中,str2 指向的字符串拷贝到 str1 中去。 strncpy 函数可以将一个字符串的一部分拷贝到另一个字符串中,strncpy 将字符串 src 中的 count 个字符拷贝到字符串 dest ...

    数据结构 C++ 字符串 7个操作的基本实现

    此外,通过赋值运算符`=`, 深拷贝和浅拷贝的概念也是字符串拷贝中的重要知识点。`字符串的拷贝.cpp`应该包含了如何进行字符串的拷贝以及如何避免常见的拷贝问题。 7. **字符串的替换操作**:`replace`函数允许我们...

    memcpy, memcpy()函数,字符串拷贝

    在标题“memcpy, memcpy()函数,字符串拷贝”以及描述“memcpy: 头文件,函数原型,函数功能,函数返回值,说明”中,主要讨论了`memcpy`函数的相关知识点。下面将详细介绍`memcpy`函数的关键特性及其应用场景。 ##...

Global site tag (gtag.js) - Google Analytics