【发布时间】:2015-11-03 13:30:54
【问题描述】:
我正在尝试编写一个简单的程序,该程序将利用指针反转用户输入。这是我第一次使用指针,理论上我的程序似乎可以工作:有一个数组,将用户输入写入数组,将一个指针指向头部,另一个指向结尾,并让 while 循环执行休息。但是,我的程序运行不正常。我的问题是,我到底做错了什么?
这是我的代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
char user_input[1000] = " ";
cout << "Enter a word to be reversed: " << endl;
cin >> user_input;
int myChar = sizeof(user_input) - 1;
char *start = user_input;
char *end = user_input + myChar - 1;
while (start < end) {
char save = *start;
*start = *end;
*end = save;
start++;
end--;
}
cout << user_input;
}
And my output:
Enter a word to be reversed:
hello <--- my input
<--- no output
【问题讨论】:
-
My question is, what exactly am I doing wrong?你没有使用 STL,std::string和std::reverse -
如果我输入的单词超过 999 个字符会怎样?
-
@ChristianHackl - 你会在哪里找到一个? ;)
-
@owacoder:德语语法允许无限长的复合词。让我们看看……“Computerproblemlösungskompetenzseminarlehrergehaltsverhandlungspausengrund。” - 暂停讨论研讨会教师工资以解决计算机问题的原因。您可以随意扩展它,甚至使其递归。 (但在你继续这样做之前,请注意,即使语法允许,好的风格是另一回事:))