12

我想将 char 转换为其ASCII int 值。

我可以用所有可能的值填充一个数组并与之进行比较,但这对我来说似乎不合适。我想要类似的东西

char mychar = "k"
public int ASCItranslate(char c)
return c   

ASCItranslate(k) // >> Should return 107 as that is the ASCII value of 'k'.

这一点atoi()在这里不起作用,因为它仅适用于可读数字。

它不会对空格做任何事情(ASCII 32)。

4

6 回答 6

21

只需这样做:

int(k)

您只是在这里直接将 char 转换为 int,不需要函数调用。

于 2013-04-14T12:57:07.913 回答
7

Achar已经是一个数字。它不需要任何转换,因为 ASCII 只是从数字到字符表示的映射。

如果您愿意,可以直接将其用作数字,也可以强制转换。

于 2013-04-14T12:58:02.603 回答
3

在 C++ 中,您还可以使用static_cast<int>(k)显式转换。

于 2013-04-14T13:01:30.233 回答
1

做这个:-

char mychar = 'k';
//and then
int k = (int)mychar;
于 2013-04-14T13:07:39.207 回答
1

要将ASCII 字符转换为它的ASCII 值

  char c='A';
    cout<<int(c);

要将ASCII 值转换为它的ASCII 字符

int a=67;
  cout<<char(a);
于 2017-09-27T07:12:01.223 回答
0
#include <iostream>

char mychar = 'k';
int ASCIItranslate(char ch) {
    return ch;
}

int main() {
    std::cout << ASCIItranslage(mychar);
    return 0;
}

这是您修复了各种语法错误的原始代码。假设您使用的是使用 ASCII 的编译器(现在几乎每一个),它都可以工作。为什么你认为这是错误的?

于 2013-04-14T20:05:51.500 回答