以下代码为基础:
for (int i = 0; i < 26; i++)
{
alphabet[i] = (char) ('A'+ i );
}
我的问题是: -
如果&#39; A&#39;对&#39; X&#39;的更改我们如何从一开始就实现字母表重置?
例如XYZABC
答案 0 :(得分:2)
您只需插入if语句:
char startChar = 'X';
for (int i = 0; i < 26; i++) {
char ch = (char) (startChar + i);
if (ch > 'Z') {
ch -= 26;
}
alphabet[i] = ch;
}
答案 1 :(得分:2)
每当你有一些东西需要&#34;环绕&#34;时,看一下模数运算符。基本的想法是:你不想从i = 0到26计数,但是从i = 23到49,但只添加模26值。
您可以直接将此偏移量集成到循环中,而不是开始计数为23(可能是'X' - 'A'
种类型):
for (int i = 0; i < 26; i++)
{
alphabet[i] = (char) ('A' + ('X' - 'A' + i) % 26);
}
'A'
是基础,'X' - 'A'
构建,它会偏移您添加i
的位置,然后取26的模数(因为字母表有26个字符),然后添加到你的&#39; A&#39;试。