簡體   English   中英

從數組中檢索變量

[英]Retrieving a variable from an array

好的,我遇到的問題是我有一個包含 27 個字符的數組,我需要編寫一個函數來根據用戶輸入顯示特定字符​​ 0 - 25。

該數組是一個常量字符串:

const string ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

這個想法是,用戶輸入一個 1 到 25 之間的值(整數值),然后在數組中顯示共同贊助字母。 我這樣做是通過使用:

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

我的問題是這是一種創建數組的適當方法,我是否能夠以這種方式從數組中檢索值。

雖然它可以使用字符串:

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

也許這就是你想要做的。 其中包括創建數組的正確方法。

#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 個字符。

如果你對我不使用“使用命名空間 std;”感到困惑取而代之的是“std::”,如果您有兩個名稱空間帶有“cout”或“endl”,程序將不知道您想使用哪一個。

因此,如果您想確保它來自正確的命名空間,請使用命名空間的名稱和兩個冒號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM