【问题标题】:Inverting the array's content [duplicate]反转数组的内容[重复]
【发布时间】: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 开始到第一个。谢谢!

标签: c++ arrays char sequence


【解决方案1】:

要打印倒序,一个简单的方法是把word中的字符从头到尾打印出来。

void showInversion (char word[MAX],int n)
{
    for (int i = n - 1; i >= 0 ; i--){
        cout << word[i];
    }
}

【讨论】:

    猜你喜欢
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多