如何将ASCII字符转换为ASCII int值?

时间:2013-04-14 12:54:50

标签: c++ arduino

我想将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)。

6 个答案:

答案 0 :(得分:15)

这样做:

int(k)

你只是将char直接转换为int,不需要函数调用。

答案 1 :(得分:6)

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

如果您愿意,可以直接将其用作数字,或者将其投射。

答案 2 :(得分:2)

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

答案 3 :(得分:0)

#include <iostream>

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

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

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

答案 4 :(得分:0)

要从 ASCII字符转换为 ASCII值

int a=67;
  cout<<char(a);

要从 ASCII值转换为 ASCII字符

mMap.clear();

答案 5 :(得分:-2)

这样做: -

char mychar = 'k';
public int ASCItranslate(char c)
return int(c);   

ASCItranslate(k); // >> should return 107 as that is the ascii value of k