gpt4 book ai didi

c++ - 如何更改字符串指针指向的字符?

转载 作者:行者123 更新时间:2023-11-28 00:04:44 26 4
gpt4 key购买 nike

理论上很简单:

如果我有一个字符串 animal = "Boar" ;

如何将动物指向 'O'

我已经试过了:

int main(int argc, char** argv) {

string *spoint = new string;
string word = "Hello";
spoint = &word;
spoint++;
cout << (*spoint);

return 0;
}

而且它不起作用。

我要cout << word;先打印"Word" ,如果这是 word 指向的字符串,则运行一个操作,所以 cout << word;将打印 "ord" .

一定有简单的方法吗?

最佳答案

我认为您缺少一些基本的指针算法。让我们看下面的代码片段:

 int* spoint;
spoint++;

如果spoint指向一个地址为1000int,那么经过上述操作后,spoint将指向当前位置旁边的位置 sizeof(int) 字节,因为下一个 int 将在 1000 + sizeof(int) 可用.此操作会将指针移动到下一个内存位置 1004(如果 int 的大小为 4 字节)而不影响实际值内存位置。

字符串也是如此。

string word[] = {"Hello","world"};
string* spoint = word;
spoint++;

spoint++ 之后,spoint 将指向 "world" 而不是 的字符 e >"Hello" ,这就是你没有正确输出的原因。如果你想访问字符串中的字符,你应该使用其他人提到的 char*

首先,您必须将word 转换为C 字符串(以null 结尾的字符序列),同时将其分配给char* ,然后您可以递增它以访问字符。

string word = "word";
const char *spoint = word.c_str();
spoint++;
cout <<spoint<<endl;

现在 spoint 将在递增后指向 "word"'o',如果您将使用 打印它>cout 然后输出将是 "ord"

关于c++ - 如何更改字符串指针指向的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36405731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com