📅  最后修改于: 2023-12-03 15:37:18.799000             🧑  作者: Mango
在 C/C++ 中,复制字符串是一项常见的操作,本文将介绍几种常见的复制字符串的方法。
strcpy()
函数是 C/C++ 标准库中常用的函数,用于将一个字符串复制到另一个字符数组中,其函数原型如下:
char* strcpy(char* dest, const char* src);
其中,dest
是目标字符数组,src
是源字符串。该函数会将 src
中的字符串复制到 dest
中,并返回 dest
的起始地址。需要注意的是,dest
的大小必须足够大,能够容纳 src
的所有字符以及结尾的空字符。
以下是一个使用 strcpy()
函数复制字符串的示例程序:
#include <iostream>
#include <cstring>
int main() {
char src[20] = "hello world";
char dest[20];
std::strcpy(dest, src);
std::cout << dest << std::endl;
return 0;
}
输出:
hello world
strncpy()
函数是类似于 strcpy()
函数的一个函数,其函数原型如下:
char* strncpy(char* dest, const char* src, size_t n);
其中,n
表示最大复制的字符数。如果 src
中的字符串长度小于 n
,则剩余的字符用空字符填充。需要注意的是,如果 src
的长度大于等于 n
,则 dest
必须手动添加空字符。
以下是一个使用 strncpy()
函数复制字符串的示例程序:
#include <iostream>
#include <cstring>
int main() {
char src[20] = "hello world";
char dest[20];
std::strncpy(dest, src, 5);
dest[5] = '\0'; // 手动添加空字符
std::cout << dest << std::endl;
return 0;
}
输出:
hello
memcpy()
函数是 C/C++ 标准库中常用的函数,用于将一个指定长度的内存块从源地址复制到目标地址,其函数原型如下:
void* memcpy(void* dest, const void* src, size_t n);
其中,n
表示最大复制的字节数。该函数会将 src
中的 n
个字节复制到 dest
中。
以下是一个使用 memcpy()
函数复制字符串的示例程序:
#include <iostream>
#include <cstring>
int main() {
const char* src = "hello world";
char dest[20];
std::memcpy(dest, src, std::strlen(src) + 1);
std::cout << dest << std::endl;
return 0;
}
输出:
hello world
以上就是 C/C++ 中复制字符串的几种常见方法。