减去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 

如果你想要数字差异,只需使用我的答案中的diffans会给你这封信)。

这不会如此

 'a' - 'b' 

将导致-1 (或a之前的字符)

如果你想用包裹来处理底片,你必须检查它

 int diff = c2 - c1; char ans; diff > 0 ? ans = diff + 'a' - 1 : 'z' + diff + 1; 

这将给出:

  1. 'z'代表'b'-'c'
  2. 'y'代表'b'-'d'

你在看这个吗?

 char a1,a2,a3; a3 = a1 - a2 + 'a';