C中的字符移位

时间:2009-04-18 08:56:21

标签: c char

我试图找到库中的函数,根据需要将字符前后移位 例如:

如果此函数消耗'a'和数字向前移3,它将被移位3次,输出将为'd'。

如果此函数消耗'5'并且数字向前移3,它将被移位3次,输出将为'8'。

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:7)

您无需调用函数即可执行此操作。只需将数字直接添加到角色即可。

例如:

'a' + 3

评估为

'd'

答案 1 :(得分:3)

鉴于你所要求的,这样做:

char char_shift(char c, int n) {
   return (char)(c + n);
}

如果你的意思是其他东西(或许打算'Z'+ 1 ='A'),那么重写你的问题......

答案 2 :(得分:2)

在C中, char 是整数类型(例如 int long long int )。

它的功能与其他整数类型相同,但它可以存储的值范围通常限制为-128到127或0到255,但这取决于实现。

例如:

char x = 3;
char y = 6;
int z;

z = x + y;
printf("z = %d\n", z); //prints z = 9

char 类型(通常作为数组的一部分)最常用于存储文本,其中每个字符都编码为数字。

字符和字符串常量是一种方便。如果我们假设机器使用ASCII字符集(今天几乎无处不在),在这种情况下,大写A编码为65,那么:

char x = 'A';
char str[] = "AAA";

相当于

char x = 65;
char str[] = {65, 65, 65, 0};

因此,像'X' + 6这样的东西很有意义 - 结果将取决于字符编码。在ASCII中,它等同于88 + 694'^'