c++用指针复制字符串
时间: 2024-09-07 14:00:45 浏览: 45
在C++中,使用指针复制字符串通常涉及到动态内存分配和指针操作。这可以通过标准库函数如`strdup`实现,也可以通过手动复制每个字符来完成。以下是使用指针复制字符串的几种常见方法:
1. 使用`strdup`函数(在C++中通常也是可用的):
```cpp
char* original = "original string";
char* copy = strdup(original);
// 使用复制的字符串...
free(copy); // 使用完毕后需要释放内存
```
注意:`strdup`不是C++标准库的一部分,它是POSIX标准的一部分,但在大多数C++编译器中都可用。
2. 手动使用`new`和`strcpy`:
```cpp
char* original = "original string";
char* copy = new char[strlen(original) + 1]; // 分配足够的内存
strcpy(copy, original); // 复制字符串
// 使用复制的字符串...
delete[] copy; // 使用完毕后需要释放内存
```
3. 手动复制字符:
```cpp
char* original = "original string";
char* copy = new char[strlen(original) + 1]; // 分配足够的内存
for (int i = 0; original[i] != '\0'; ++i) {
copy[i] = original[i]; // 逐个字符复制
}
copy[strlen(original)] = '\0'; // 确保字符串以空字符结尾
// 使用复制的字符串...
delete[] copy; // 使用完毕后需要释放内存
```
当手动复制字符串时,需要注意内存分配和释放,避免内存泄漏。使用`new`分配的内存在不需要时,应使用`delete[]`进行释放。
阅读全文