如何复制const char*类型变量的内容
How to copy contents of the const char* type variable?
我知道之间的区别
char *a = "string";
char p[] = "string";
从*a
开始,它的作用如下。。。
+-----+ +---+---+---+---+---+---+---+
a: | *======> | s | t | r | i | n | g | |
+-----+ +---+---+---+---+---+---+---+
如果我想创建另一个变量,比如
char *b;
我希望它复制a指向的指针中的所有内容,而不是指向a的内容。
+-----+ +---+---+---+---+---+---+---+
a: | *======> | s | t | r | i | n | g | |
+-----+ +---+---+---+---+---+---+---+
b: | *======> | s | t | r | i | n | g | |
+-----+ +---+---+---+---+---+---+---+
如何做到这一点?
在C++中,您可以执行
const size_t n = strlen(a); // excludes null terminator
char *b = new char[n + 1]{}; // {} zero initializes array
std::copy_n(a, n, b);
实际示例
但是,我建议使用std::string
而不是C样式字符串,因为它是
- 正确处理