如何获得在 C++ 中生成字母表的更简单方法?

Pro*_*mer 6 c++ arrays project shortcut alphabet

我正在尝试做一个项目,尝试和学习 C++,我没有完成它,但它所做的是你输入一个 3 或 4 个(变量 noc)单词,程序运行所有可能的(noc)字母单词或废话,直到找到你的,所以有两个因素:单词或废话的长度以及它可以输入的字符,在我的情况下,我只想要字母表,所以这是我的代码:

#include <iostream>
#include <unistd.h>
using namespace std;

const int noc = 3;

int main() {

    string used[noc];
    string inp;
    cin >> inp;
    char albet[] = {'a','b','c'};
    cout << "Starting..." << endl;
    usleep(1);
    string aiput = "";
    while(aiput != inp){
        for(int i = 0; i <= noc; i++){
            aiput = aiput +
        }
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

目前我需要名为“albet”的数组中的字母表(我想出了一些简短的词来表示它们的含义很容易忘记)所以请你帮我快速生成 C++ 中的字母表,而不必输入所有他们一一

for*_*818 7

当您需要一个字符数组时,您不必一一使用单个字符文字,如

char albet[] = {'a','b','c','d','e','f',... uff this is tedious ...};
Run Code Online (Sandbox Code Playgroud)

您可以改用字符串文字:

const std::string albet{"abcdefghijklmnopqrstuvwxyz"};
Run Code Online (Sandbox Code Playgroud)

我花了大约 10 秒的时间输入并与其他答案相比,这不依赖于 ASCII 编码(不能保证)。


cig*_*ien 6

您可以使用std::iota,这是此用例的一个很好的算法:

char albet[26] {};
std::iota(std::begin(albet), std::end(albet), 'a');
Run Code Online (Sandbox Code Playgroud)

这是一个演示

请注意,这不能保证在 c++ 中工作,除非您有 ASCII 编码,但如果您可以依赖它,您会没事的。


Dav*_*d W 5

因为所有字符都可以用 ASCII 代码表示('a' 从 97 开始,所有 ASCII 代码都是 int),所以您可以简单地创建一个循环来执行此操作。例如:

char albet[26];

for (int ch = 'a'; ch <= 'z'; ch++) {
    //do ch-'a' because we start at index 0
    albet[ch-'a'] = ch;
}
Run Code Online (Sandbox Code Playgroud)

你就完成了!