我想知道如何在 C 中“减去字母”:
我的意思是,我有 2 个字母,'a' 和 'c',我想执行 'c'-'a'='b' 这是 3-1 =2。
如何在 C 中获得相同的行为?
我可以转换字母->数字,但如何管理有限的字母长度?谢谢你。
问问题
19168 次
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;
这将给出:
'z'
为了'b'-'c'
'y'
为了'b'-'d'
于 2012-05-28T03:08:30.183 回答
0
你在看这个吗?
char a1,a2,a3;
a3 = a1 - a2 + 'a';
于 2012-05-28T03:08:41.010 回答