从数组中检索变量

时间:2016-04-19 03:46:30

标签: c++ arrays

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

数组是一个常量字符串:

const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

并且想法是用户输入1到25之间的值(int值),然后在数组中显示共同发起的字母。我这样做是通过使用:

cout << ALPHABET[value];

我的问题是这是一种创建数组的合适方式,我能够以这种方式从数组中检索值。

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

2 个答案:

答案 0 :(得分:1)

  

我的问题是这是一种创建数组的合适方式,我能够以这种方式从数组中检索值。

虽然它可以使用字符串:

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

我喜欢使用std::vector来包含一系列元素:

vector<char> ALPHABET(26);
iota(begin(ALPHABET), end(ALPHABET), 'A');

答案 1 :(得分:0)

也许这就是你想要做的。 其中包括创建数组的正确方法。

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

(有更多方法可以创建数组) 比如“char ALPHABET [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','\ 0'};

26表示此数组中的字符数不能超过26个。

如果你对我不使用“using namespace std”感到困惑,而是“std ::”,如果你有两个带有“cout”或“endl”的命名空间,程序将不知道你要使用哪一个。

因此,如果您想确保它来自正确的命名空间,请使用命名空间的名称和两个冒号。