好吧我遇到的问题是我有一个包含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;
}
答案 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”的命名空间,程序将不知道你要使用哪一个。
因此,如果您想确保它来自正确的命名空间,请使用命名空间的名称和两个冒号。