📅  最后修改于: 2023-12-03 15:13:44.466000             🧑  作者: Mango
在C和C++中,字符串是一种非常常用的数据类型。对于字符串的操作也是开发者们经常进行的操作之一。strdup()和strndup()函数就是C/C++中用来操作字符串的两个函数。
strdup()函数的主要功能是将一个字符串复制到新的内存空间,并返回这个内存空间的指针。其函数声明如下:
char* strdup (const char* str);
使用示例:
#include <stdio.h>
#include <string.h>
int main() {
char* src = "Hello, World!";
char* dest = strdup(src);
printf("src: %s\n", src);
printf("dest: %s\n", dest);
free(dest);
return 0;
}
输出结果:
src: Hello, World!
dest: Hello, World!
strndup()函数和strdup()非常相似,但是允许用户指定复制字符串的长度,防止复制过长的字符串造成内存泄露。其函数声明如下:
char* strndup (const char* str, size_t len);
使用示例:
#include <stdio.h>
#include <string.h>
int main() {
char* src = "Hello, World!";
char* dest = strndup(src, 5);
printf("src: %s\n", src);
printf("dest: %s\n", dest);
free(dest);
return 0;
}
输出结果:
src: Hello, World!
dest: Hello
在使用strdup()和strndup()函数时,需要注意以下几点:
strdup()和strndup()是C/C++中常用的字符串操作函数,特别是在字符串长度不确定时非常有用。通过掌握这两个函数的使用,可以更加方便地进行字符串操作。