【发布时间】:2015-12-01 15:32:38
【问题描述】:
所以有人告诉我用 c++ 编写一个程序,用户输入一个单词,我必须将它插入到一个数组中,但问题是当我必须反转单词时:
#include <iostream>
using namespace std;
const int EOS = '.';
const int MAX = 30;
typedef char VectorC[MAX];
void showInversion (char word[MAX],int n)
{
for (int i = n; i <= n-1 ; i--){
cout << word[i];
}
}
int main()
{
VectorC word;
char c = 'a';
int i = 0, n = 0;
cout << "ENTER SEQUENCE:" << endl;
while (c!=EOS){
word[i] = c = cin.get();
i++;
n++; //length of the word
}
cout << "THE RESULT IS: " << showInversion(word,n);
return 0;
}
输出示例:
输入一个序列:
电脑。
结果是:返回
【问题讨论】:
-
一个简单的谷歌“如何反转字符串 c++”会给你足够的信息。
-
你得到什么输出?副手,我认为你需要看看你的 for 循环。您想从最后一个(非空终止符)字符(即索引 n-1)开始并递减直到输出第一个字符(即索引 0)
-
但问题是当我不得不颠倒这个词时 --- 如果你指出问题实际上是什么,它可能会有所帮助,而不是让你的读者去推测在。不过,在一般阅读您的代码时,您似乎最好在跑去寻求帮助之前学习使用调试器。每个人都时不时需要帮助,但在实际可行的情况下,学会解决自己的问题是必不可少的,而且这似乎不是一个特别难解决的问题。 (同样,如果你解释了问题的实质,也许我的观点会改变。)
-
谢谢大家,我已经找到答案了!我误解了如何将 char 数组处理为 for,我的意思是,如何从最后一个 char 开始到第一个。谢谢!