我正在尝试创建一个项目,以试验和学习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;
}
当前,我需要数组中称为'albet'的字母(我想出一些简短的单词来表示它们容易忘记的意思)所以请您能给我一种快速生成C ++字母的方法,而不必一一键入所有的字母]
您可以使用std::iota
,在这种情况下,这是一个很好的算法:
std::iota
这里是char albet[26] {};
std::iota(std::begin(albet), std::end(albet), 'a');
。
请注意,除非您使用ASCII编码,否则这不是保证才能在c ++中工作,但是如果可以依靠它,那就可以了。
因为所有字符都可以用ASCII码表示('a'始于97,所有ASCII码均为int),所以您可以简单地循环执行该操作。例如:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<char> alphabet;
int aLetterCode = (int)'a'; // ASCII code for letter a (97)
int zLetterCode = (int)'z'; // ASCII code for letter z (122)
for (int charAsciiCode = aLetterCode; charAsciiCode <= zLetterCode; charAsciiCode++) {
alphabet.push_back((char)charAsciiCode);
}
for (char c : alphabet) {
cout << c << " ";
}
return 0;
}
您就完成了!