可以将字符分类为C语言中的整数。
我正在使用词法分析器进行讨论。我正在使用C语言构建扫描程序。
答案 0 :(得分:1)
您可以这样做:
const char str[] = "Hello world";
char c = 'H';
// And use any of these:
int chr = 'H'; // chr = 0x48
chr = c; // chr = 0x48
chr = str[0]; // chr = 0x48
你总是会在0x48
中获得chr
(72)。
答案 1 :(得分:1)
也许您想询问char是否可归类为numbers
。如果是这样,是的,它们可以,因为char变量将char的值存储为数字。
说:
char c = 120; //legal
您可以在char中存储的数字范围取决于编译器。最常见的是,char变量存储范围从-128
到127
的值,总共256种可能性。
根据Variables. Data Types. - C++ Documentation
您还可以使用从0
到255
的无符号字符。
请注意,如果您存储超出此范围的数字,您将失去精确度。说:
char c = 300;
int i = c;
std::cout << i; //prints 44
system("pause");
return 0;
答案 2 :(得分:1)
在“ C编程语言”(第二版)中,特别提到的是,就 stdio.h的字符操作函数而言,char和int类型之间没有区别他们担心。
char类型专门用于存储(例如)字符数据, 但是可以使用任何整数类型
这是一本改编自本书的例子并说明了这一点:
#include <stdio.h>
/* copy input to output */
int
main(void)
{
int c;
while ((c = getchar()) != EOF)
putchar(c);
}
答案 3 :(得分:0)
当然,charactor可以隐式转换为整数。
char a = 'c';
int b = a;
答案 4 :(得分:0)
使用TypeCasting:
char c = 'a';
int x = (int) c;
printf("%d\n", c);
OR
char c = 'a';
printf("%d\n", c);
两者都会给你97
答案 5 :(得分:0)
字符表示为整数。分析输入时的一个常见缺陷如下所示:
char c; // (!!) should be of type int to hold EOF
while((c = getchar()) != EOF) {
// ...
}
答案 6 :(得分:0)
char
是类似int
的整数类型,范围缩小。
您可以像int
,short
,long
或long long
一样添加,复制,移位,打印和扫描。 char
的范围小于其他人。涉及char
和short
的大量代码会默默地提升为int
,因此需要谨慎。
char c;
int i;
c = -2; // OK
i = -2; // OK
// sizeof(c) == 1
// sizeof(i) >= 2 (often 4, sometimes 8)
scanf("%hhd", &c);
scanf("%d", &i);
printf("%hhd", c);
printf("%d", i);
在byte
为&gt;的异国情调的机器上9位,其他问题适用。