好吧所以这很难说出来。所以我有一些代码:
vector <char> Chars;
for(char c = '0'; c <='z'; c++) {
Chars.push_back(c);
}
因此,它有助于为我的角色vector
添加字符,因为它会添加选择金额。例如:
vector <char> Chars;
for(char c = '0'; c <='9'; c++) {
Chars.push_back(c);
}
获取0123456789和:
vector <char> Chars;
for(char c = '0'; c <='Z'; c++) {
Chars.push_back(c);
}
获取0123456789:;&lt; =&gt;?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ。我怎样才能(a)获得所有的角色,以及(b)这个的顺序是什么?为什么他们在数字之后有一些符号但不是全部?
答案 0 :(得分:2)
答案 1 :(得分:2)
(b)这个顺序是什么?
它是您使用的系统的本机字符编码中指定的顺序。它可能是ASCII,ISO / IEC 8859或UTF-8中的一个,所有这些都在[0,128]范围内相同。
为什么他们在数字后面有一些符号而不是全部符号?
因为有些符号在数字之前,而有些符号在数字之后。
这只是委员会设计编码所选择的顺序。这种选择背后并不一定是一种深刻的哲学。它可能是从计算机系统之前的电传代码继承的异常。
我如何(a)获得所有角色
您可以使用数字限制来查找最小值和最大值,并使用循环来迭代它们:
for(int i = std::numeric_limits<char>::min();
i < std::numeric_limits<char>::max(); i++) {
char c = i;
Chars.push_back(c);
}
答案 2 :(得分:1)
每个字符都有一个ASCII码。
请参阅https://en.wikipedia.org/wiki/ASCII
恰好有些符号,但并非所有符号都位于&#9; 9&#39;之间。和&#39; A&#39;。
正如其他人所指出的,它甚至可能无法保证哪个符号在该表中的位置。但我想是的&#39; A&#39;到&#39; Z&#39;&#39; a&#39;到&#39; z&#39;和&#39; 0&#39;到&#39; 9&#39;保证是连续的。
另见: Does C and C++ guarantee the ASCII of [a-f] and [A-F] characters?