我试图在库中找到可以根据需要来回移动字符的函数,例如:
如果此函数消耗 'a' 和一个数字向前移动 3 ,它将被移动 3 次并且输出将是 'd'。
如果这个函数消耗 '5' 和一个向前移动的数字 3 ,它将被移动 3 次并且输出将是 '8'。
我怎样才能做到这一点?
您不需要调用函数来执行此操作。只需将数字直接添加到字符即可。
例如:
'a' + 3
评估为
'd'
鉴于您的要求,这样做:
char char_shift(char c, int n) {
return (char)(c + n);
}
如果你的意思是别的东西(也许打算'Z' + 1 = 'A'),那么重写你的问题......
在 C 中,achar
是整数类型(如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 + 6
which is 94
which is '^'
。