C 将ASCII INT转换为char
C++ Convert Ascii Int To Char To Int
我能够在没有问题的情况下转换大多数内容,如果需要的话,可以进行Google搜索。我无法弄清楚这个。
我有一个char阵列:
char map[40] = {0,0,0,0,0,1,1,0,0,0,1,0,1... etc
我试图将char转换为正确的整数,但是无论我尝试什么,我都会得到ASCII值:48/49。
我尝试了很多不同的转换和演员组合,但是我也不能以0或1的速度结合,即使是char。
有人可以帮我吗?谢谢。
代表整数的字符的ASCII范围为48至57(对于'0'至9')。您应该从字符中减去基本值48,以获取其整数值。
char map[40] = {'0','0','0','0','0','1','1','0','0','0','1','0','1'...};
int integerMap[40];
for ( int i = 0 ;i < 40; i++)
{
integerMap[i] = map[i] - 48 ;
// OR
//integerMap[i] = map[i] - '0';
}
如果char是字面的,例如'0'
(请注意引号),要转换为INT您必须执行的操作:
int i = map[0] - '0';
当然,在您的map
数组上进行了类似的操作。这也将对错误检查,因此您知道由此产生的INT在0-9范围内。
您获得48/49的原因是因为,正如您指出的那样,像int i = (int)map[0];
这样的文字的直接转换给出了字符的ASCII值。
相关文章:
- 将无符号char*转换为std::istream*C++
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 将函数参数"const char*"转换为"std::string_view"是
- C ++如何在使用"tolower"时将char转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- 为什么从 char 转换为 std::byte 可能是未定义的行为?
- 如何在虚幻引擎4中将char*转换为TCHAR?
- C++:将模板类型 char 转换为 std::string
- strcmp/char* 转换无法按预期工作
- C++中的SQLite char*转换
- 无法从 const char* 转换为 const char *&
- 在 C++ 中将 char 转换为 int,而无需符号位传播
- 如果必须包含西里尔字符,如何将 char* 转换为 std::string?
- 试图使用strCMP时的char转换错误
- 无法从'const char *'转换为'LPCTSTR'
- 将 std::vector<char> 转换为字符* 会导致字符缺陷
- 使用 static_cast 将 char 转换为 int c++
- 如何在 C++(MFC) 中将 char* 转换为 LPCTSTR
- 无法将const char转换为字符串构造字符串