将单个 char 转换为 int
如何将 char a[0] 转换为 int b[0] 其中 b 是一个空的动态分配的 int 数组
我已经尝试过
char a[] = "4x^0";
int *b;
b = new int[10];
char temp = a[0];
int temp2 = temp - 0;
b[0] = temp2;
我想要 4 但它给了我 ascii 值 52
也
a[0] = atoi(temp);
给了我 错误:从“char”到“const char*”的转换无效 初始化“int atoi(const char*)”的参数 1
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你需要做的是:
相反。
You need to do:
instead.
atoi() 版本不起作用,因为 atoi() 对字符串而不是单个字符进行操作。所以这会起作用:
请注意,您可能会想做:
atoi(&temp)
但这是行不通的,因为 &temp 不指向以 null 结尾的字符串。
The atoi() version isn't working because atoi() operates on strings, not individual characters. So this would work:
Note that you may be tempted to do:
atoi(&temp)
but this would not work, as &temp doesn't point to a null-terminated string.
替换整个序列:
您可以用更简单的方法
根本不需要搞乱临时变量。您需要使用
'0'
而不是0
的原因是前者是字符'0',其值为 48,而不是值 0。You can replace the whole sequence:
with the simpler:
No need at all to mess about with temporary variables. The reason you need to use
'0'
instead of0
is because the former is the character '0' which has a value of 48, rather than the value 0.