【问题标题】:How to create Character based arrays in Turbo C++?如何在 Turbo C++ 中创建基于字符的数组?
【发布时间】:2011-06-03 16:48:46
【问题描述】:

我尝试了一些 C++,但我对它太陌生了,你可以说这是我在 C++ 的第一天。所以我试图创建一个函数,但我被数组困住了!当我像这样创建一个基于字符的数组时:

char x[7][7] = {"sec","min","hr","day","week","month","year"};

当我尝试像这样从中获取数据时:

for (i=0;i<=7;i++){
  cout << x[i] << "\n";    
} 

我得到了一些奇怪的结果!像这样:

谁能告诉我我要去哪里完全错了!请我是 C++ 的新手,所以你能给我一个很好的解释吗?

【问题讨论】:

  • 不要使用 Turbo C++。使用现代 IDE,例如 Code::Blocks 或 VC++ Express。

标签: c++ c arrays multidimensional-array


【解决方案1】:

由于您有 7 个值,并且数组从 0 开始索引,因此您只需要数到 6,而不是 7。将您的 for 循环修改为 for (i=0;i &lt; 7;i++)。 (&lt; 而不是&lt;=。)

您正在遍历数组的末尾,这可能会给您带来垃圾数据,或者可能会使您的程序崩溃。

【讨论】:

  • 谢谢哥们,我刚刚忽略了某个地方并尝试了您的i&lt;7&amp;&amp;My Other Statement,它就像我想的那样工作!
【解决方案2】:
for (i=0;i<=7;i++){
  cout << x[i] << "\n";    
}

数组索引的范围仅从06,并且您检查i&lt;=7。将其更改为 i &lt; 7

【讨论】:

  • @Jack:如果需要,请与i&lt;=6 比较。
  • 如你所说。但这不是我的代码工作所必需的。我想我必须放弃。
【解决方案3】:

问题不在于创建数组,而在于打印结果。 C、C++、Java、C#...和许多其他语言中的数组都是基于 0 的。当您声明一个包含 7 个元素的数组时,您会从 0 迭代到 6:

for ( int i = 0; i < 7; ++i ) {
   std::cout << x[i] << std::endl;
}

注意:&lt; 而不是&lt;=

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2020-12-03
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    相关资源
    最近更新 更多