繁体   English   中英

在c中减去字母

[英]subtracting letters in c

我想知道如何在C语言中“减去字母”:
我的意思是,我有2个字母,“ a”和“ c”,我想执行3-1 = 2的“ c”-“ a” =“ b”。
如何在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在我的答案中使用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';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM