减去c中的字母
我想知道如何在C中“减去字母”:
我的意思是,我有2个字母,’a’和’c’,我想执行’c’ – ‘a’=’b’,即3-1 = 2。
如何在C中获得相同的行为?
我可以转换字母 – >数字,但如何管理字母表的有限长度 ? 谢谢。
你可以将这些字母视为数字,然后再添加字母'a'
以将其标准化
所以
char c1 = 'a'; char c2 = 'c'; int diff = c2 - c1; //'c' - 'a' = 2 char ans = diff + 'a' - 1; //add 'a' and subtract 1 to normalize it
如果你想要数字差异,只需使用我的答案中的diff
( ans
会给你这封信)。
这不会如此
'a' - 'b'
将导致-1
(或a之前的字符)
如果你想用包裹来处理底片,你必须检查它
int diff = c2 - c1; char ans; diff > 0 ? ans = diff + 'a' - 1 : 'z' + diff + 1;
这将给出:
-
'z'
代表'b'-'c'
-
'y'
代表'b'-'d'
你在看这个吗?
char a1,a2,a3; a3 = a1 - a2 + 'a';