在C中将字符串转换为short

前端之家收集整理的这篇文章主要介绍了在C中将字符串转换为short前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我一直在寻找如何将字符串转换为short并找到很多关于如何将字符串转换为整数的方法.我会留下一个问题作为对这些主题评论,但我没有足够的声誉.所以,我想要做的是将字符串转换为short,因为数字应该永远不会超过三或零以下并且短路会节省内存(据我所知).

要清楚,我不是指ASCII码.

我希望能够做的另一件事是检查字符串到short的转换是否失败,因为我将使用由用户输入组成的字符串.

我知道我可以用while循环来做这个,但是如果有一个内置函数在C中做这个,就像while循环一样,或者更高效,我很乐意听到它.

解决方法

基本上,std :: stos函数由于未知原因而丢失,但您可以轻松地自行滚动.使用std :: stoi转换为int,检查由例如由std :: numeric_limits< short>,如果std :: range_error不在范围内,则抛出它,否则返回该值.那里.

如果你已经安装了Boost库,你可以使用boost :: lexical_cast来方便,但我会避免它(主要是因为冗长和库依赖,它也有点效率低).

早期的boost :: lexical_cast因效率不高而闻名,我相信因为它内部基于字符串流,但正如评论中所报道的那样现代版本是faster than conversion via stringstream,而不是通过scanf.

猜你在找的C&C++相关文章