C++ 从数组中检索变量
好的,我遇到的问题是,我有一个包含27个字符的数组,我需要编写一个函数,根据用户输入显示一个特定的字符0-25 数组是一个常量字符串:C++ 从数组中检索变量,c++,arrays,C++,Arrays,好的,我遇到的问题是,我有一个包含27个字符的数组,我需要编写一个函数,根据用户输入显示一个特定的字符0-25 数组是一个常量字符串: const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 其思想是用户输入一个介于1和25之间的值(int值),然后在数组中显示共同发起人的字母。我使用以下方法来完成此操作: cout << ALPHABET[value]; cout 25)//如果输入的数字超过“Z”,则If语句将显示“-1”
const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
其思想是用户输入一个介于1和25之间的值(int值),然后在数组中显示共同发起人的字母。我使用以下方法来完成此操作:
cout << ALPHABET[value];
cout 25)//如果输入的数字超过“Z”,则If语句将显示“-1”
库特
我的问题是,这是创建数组的合适方法吗?我是否能够通过这种方法从数组中检索值
const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int main()
{
int value; //Variable defining user entered value
cout << "Please enter a number between 0-25." << endl;
cin >> value;
if (value > 25) //If statement to display "-1" if number entered is past "Z"
cout << "-1" << endl;
else
cout << ALPHABET[value];
return 0;
}
尽管使用字符串是可行的:
int main()
{
const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int num = -1;
while (num < 0 || num > 25) {
cout << "Enter number (0 - 25): ";
cin >> num;
}
cout << ALPHABET[num] << '\n';
}
也许这就是你想要做的。
其中包括创建数组的正确方法
#include <iostream>
char ALPHABET[] = { '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' };
//the \0 means the end of the array of characters a.k.a. a string
int main()
{
int value; //Variable defining user entered value
std::cout << "Please enter a number between 0-25." << std::endl;
std::cin >> value;
if (value > 25 || value < 0) //If statement to display "-1" if number entered is past "Z"
std::cout << "-1" << std::endl;
else
std::cout << ALPHABET[value];
return 0;
}
#包括
字符字母[]={'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'};
//\0表示字符数组的结尾,也称为字符串
int main()
{
int value;//定义用户输入值的变量
std::cout值;
if(value>25 | | value<0)//if语句,如果输入的数字超过“Z”,则显示“-1”
std::cout假设string
您的意思是std::string
,您并没有真正创建数组。您已经创建了一个允许类似数组的访问的对象。步骤1:编写代码。步骤2:修复错误。步骤3:针对无法修复的错误发布堆栈溢出问题。您似乎在第1步,当您到达第3步时返回。事实会是什么这是一个问题吗?如果“数组”总是包含整个字母表,那么为什么不取用户的值(0-25),只做'a'+值
?@ChrisBritt,因为“”包含在字符串中,你的右边应该是1-26我已经用我的整个代码更新了,以增加输入和输出的清晰度。它构建得很好,没有错误,只是没有做我需要的事情。向量
比字符串
或普通数组有什么可能的优势?我只能想到缺点首先,看看定义长度。我知道我们喜欢推荐vector
作为默认值,但肯定不是所有内容都这样。
#include <iostream>
char ALPHABET[] = { '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' };
//the \0 means the end of the array of characters a.k.a. a string
int main()
{
int value; //Variable defining user entered value
std::cout << "Please enter a number between 0-25." << std::endl;
std::cin >> value;
if (value > 25 || value < 0) //If statement to display "-1" if number entered is past "Z"
std::cout << "-1" << std::endl;
else
std::cout << ALPHABET[value];
return 0;
}