【发布时间】:2019-01-10 22:07:11
【问题描述】:
void reverse(char[] x) {
char* pStart = x;
char* pEnd = pStart + sizeof(x) - 2;
while(pStart < pEnd) {
char temp = *pStart;
*pStart = *pEnd;
*pEnd = temp;
pStart++;
pEnd--;
}
}
int main() {
char text[] = ['h','e','l','l','o'];
reverse(text);
cout << text << endl;
return 0;
}
我是 C++ 和堆栈溢出的新手。
我正在尝试使用指针反转字符串...我不太明白我做错了什么。请帮帮我。
补充问题:字符串和字符数组有什么区别?
【问题讨论】:
-
字符串是一个对象,正是你应该在这里使用的。
-
"字符串和字符数组有什么区别?" 假设你说的是
std::string,这就像问袖珍计算器之间的区别和图形计算器。如果你可以在纸上多写一点来做额外的工作,他们都会给你相同的数字,但如果你给我一个,我知道如果我的口袋足够大,我会拿哪个。 -
为什么不使用
std::string s{"hello"}; std::reverse(s.begin(), s.end());? -
警告:当使用像
reverse这样的通用标识符时,如果您选择使用using namespace std;,请格外小心在标准库中已经有一个std::reverse,您会发现自己收到了一些真正奇怪的东西如果代码与它发生冲突,则会出现错误消息或行为。 -
@user4581301 应该不是问题,因为没有人会做
using namespace std,对吧?
标签: c++ string pointers reverse