gpt4 book ai didi

c++ - 如何在C++中通过指针传递字符串?

转载 作者:行者123 更新时间:2023-12-02 09:47:46 25 4
gpt4 key购买 nike

在C++编程中,我将字符串作为指针传递
码:

#include<iostream>
using namespace std;
void changeString(string *s) {
// change s[1] to 'a' inside this function
}

int main(void) {
string s = "ayush";
changeString(&s);
cout<<s;
}
我写了代码* s [1] ='a',但是显示错误。如何在函数“changeString”中访问字符串的第一个字符。请帮助任何支持表示赞赏。

最佳答案

根据C++ Operator Precedence,下标具有比取消引用更高的优先级。
因此,如评论中提到的@dxiv,*s[1]被解析为*(s[1])
因此,您需要使用括号将优先级更改为(*s)[1]
顺便说一句,使用string::replace而不是Assign运算符是safer way to change string
更好的是,恕我直言,使用引用是更c++的方式。例如,检查下面的代码。

#include<iostream>
using namespace std;

void changeStringWithReference(string &s) {
s[3]= 'a';
}

void changeString(string *s) {
(*s)[1] = 'a';
// better to use string::replace
}

int main(void) {
string s = "abcde";
changeString(&s);
cout << s << endl;
changeStringWithReference(s);
cout << s << endl;
}

关于c++ - 如何在C++中通过指针传递字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63949182/

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