2

我想知道如何在 C 中“减去字母”:
我的意思是,我有 2 个字母,'a' 和 'c',我想执行 'c'-'a'='b' 这是 3-1 =2。
如何在 C 中获得相同的行为?
我可以转换字母->数字,但如何管理有限的字母长度?谢谢你。

4

2 回答 2

7

您可以将字母视为数字,然后将字母加'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; 

这将给出:

  1. 'z'为了'b'-'c'
  2. 'y'为了'b'-'d'
于 2012-05-28T03:08:30.183 回答
0

你在看这个吗?

char a1,a2,a3;
a3 = a1 - a2 + 'a';
于 2012-05-28T03:08:41.010 回答