C++数组中的问题
Issue in C++ Arrays
我正在尝试做一些作业,但我遇到了一个问题。我的作业是
•使用 for 循环打印数组的内容。
输出应如下所示:
阵列的打印内容
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
我有我的代码,它正在工作。然而,在我的字母表末尾出现了一堆随机字符和符号。你们看到我做错了什么吗?
这是我的代码。
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
// main FUNCTION BEGIN PROGRAM EXECUTION
int main()
{
// ALPHABET ARRAY DECLARATIONS
char Letters [26] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
for (int i = 0; i < 27 ; i++)
{
cout<< "PRINTING CONTENTS OF ARRAY" << endl;
cout<< "===============================" << endl;
cout<< Letters << " ";
cout<< endl;
break;
}
return 0 ;
} // ***END main FUNCTION***
基本上,简单地说,问题是它像我想要的那样打印A-Z,但也在Z之后打印一堆随机符号。由于我是新手,我相信这可能是一件简单的事情。提前感谢!
将字符数组传递给输出流时,该数组必须以 null 结尾。您的数组不是以空结尾的;这就是为什么你最后会得到额外的垃圾。
但是,这不是解决方案的主要问题:您需要索引字母,如下所示:
cout << Letters[i] << " ";
最后,对于 26 个字母,索引从 0 变为 25,因此循环延续条件应为 i < 26
、i != 26
或 i <= 25
。
要删除"一堆随机字符和符号",请在Letters
末尾添加一个NUL
:
char Letters [] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
'U', 'V', 'W', 'X', 'Y', 'Z', 0};
这将打印字母表26次,这可能不是您想要的。编辑:之前的说法错了——我错过了你的break;
。
在数组末尾添加一个空值。 C 函数检查要终止的空字符。
数组索引从 0
到 N
开头,你在 Letters 中有 26 个字符,索引从 0
到 25
开头:
cout<< "PRINTING CONTENTS OF ARRAY" << endl;
cout<< "===============================" << endl;
for (int i = 0; i < 26 ; i++)
{
cout<< Letters[i] << " ";
}
cout<< endl;
break;
通常用于在特定条件下断开for
或while
循环。你for
循环finishes smoothly, you don't need a
在循环中中断。
C++中的字符数组以 null 结尾,并且从零开始从零开始的索引,因此当您初始化数组时
char Letters [26] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
您没有考虑到您需要 1 个空间来终止导致未定义行为的数组
由于您将字母[0]打印到字母[26],因此在编写字母[26]时再次导致未定义的行为,因此出现了垃圾值
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输入std::数组时出现问题
- 类对象数组的问题会导致崩溃
- 传递二维数组时出现问题
- 从 C++ 中的函数返回数组地址问题
- 使用数组时出现问题
- 打印问题.我在数组中打印值时遇到一些问题
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 将字节数组转换为带有字节序问题的指针
- C++ 填充数组时遇到问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 当我尝试通过 arduino 上的引用传递布尔数组时出现问题
- 我正在尝试解决一个需要数组总和值但代码不起作用的问题,我想做这样的事情
- 编写 cin.get() 以接收字符数组时出现问题
- 在 C++ Consol 中的数组中执行用户命令时出现问题
- 存储另一个函数返回的布尔数组时遇到问题
- 当我在 CLion 中读取数组中的 txt 文件时C++编码问题
- 运行时C++数组初始化问题
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组