如何解决如何在C中将int转换为short int?
假设我有一个 char array[5] = {'1','2','3','4','\0'};
。
如果我想要整数,我可以简单地使用 atoi() 函数:
int num = atoi(array);
如何将值检索为 short/short int?
当然,前提是该值适合简短。
我是否需要调用 atoi()
并通过位移位来解决?
不过,我对此不太熟悉。
解决方法
短函数没有ascii,https://en.cppreference.com/w/c/string/byte/atoi只列出atoi
for ascii to int
,atol
for ascii to long
和{{1} } 将 ascii 转换为 atoll
。
但是您可以使用 long long
转换为 atoi
,然后直接转换为 int
。当然,这不会检查数字是否在 short
的范围内。您可能需要使用 short
之类的东西自行检查。
SHRT_MIN <= i && i <= SHRT_MAX
或者直接转换:
int num = atoi(array);
short s = (short)num;
正如其他人建议您不需要显式转换,但它可能有助于更好地了解这里发生了什么。
short s = (short)atoi(array);
,
比简单转换更安全的版本。
<!-- -->
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。