0

我试图在库中找到可以根据需要来回移动字符的函数,例如:

如果此函数消耗 'a' 和一个数字向前移动 3 ,它将被移动 3 次并且输出将是 'd'。

如果这个函数消耗 '5' 和一个向前移动的数字 3 ,它将被移动 3 次并且输出将是 '8'。

我怎样才能做到这一点?

4

3 回答 3

7

您不需要调用函数来执行此操作。只需将数字直接添加到字符即可。

例如:

'a' + 3

评估为

'd'
于 2009-04-18T08:59:55.677 回答
4

鉴于您的要求,这样做:

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

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

于 2009-04-18T08:58:04.543 回答
2

在 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 + 6which is 94which is '^'

于 2009-04-18T09:47:21.523 回答