Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从数组中检索变量_C++_Arrays - Fatal编程技术网

C++ 从数组中检索变量

C++ 从数组中检索变量,c++,arrays,C++,Arrays,好的,我遇到的问题是,我有一个包含27个字符的数组,我需要编写一个函数,根据用户输入显示一个特定的字符0-25 数组是一个常量字符串: const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 其思想是用户输入一个介于1和25之间的值(int值),然后在数组中显示共同发起人的字母。我使用以下方法来完成此操作: cout << ALPHABET[value]; cout 25)//如果输入的数字超过“Z”,则If语句将显示“-1”

好的,我遇到的问题是,我有一个包含27个字符的数组,我需要编写一个函数,根据用户输入显示一个特定的字符0-25

数组是一个常量字符串:

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;
}