C++指针数组到字符数组中的特定位置

C++ pointer array to specific location in char array

本文关键字:数组 定位 位置 字符 指针 C++      更新时间:2023-10-16

我有一个项目问题。它正在生成C++代码来编辑文件,但有一件事我坚持了下来。该文件存储在 char 数组中,我想有一个指向 char 数组内特定位置的指针数组,但我只得到一个指向数组一个字符的指针。我想要的是这样的东西,但在一个非常大的数组上:

char array[] = "Hello, how are you?";
char* ptr = &array[7];
*ptr = "who";
std::cout << array << std::endl;
//Hello, who are you?

这是一个愚蠢的例子,但我希望它能描述我正在尝试做的事情。

目前我只能这样做:

char array[] = "Hello, how are you?";
char* ptr = &array[7];
*(ptr) = 'w';
*(ptr+1) = 'h';
*(ptr+2) = 'o';
std::cout << array << std::endl;
//Hello, who are you?

但这并不容易处理。我想要一个指针数组,以便轻松编辑数组的各个部分。

我非常感谢任何建议!

您的直接问题可以这样解决:

#include <cstring> // std::memcpy
char array[] = "Hello, how are you?";
char* ptr = &array[7];
std::memcpy(ptr, "who", 3);       // copy 3 chars from the character literal "who" to ptr
std::cout << array << std::endl;