c - 在C中将休闲字符串转换为int
问题描述
作为标题,我需要将一个随意的字符串(如“elephant”)转换为 int 类型。我已经知道stdlib.h库的atoi和strtol函数。但是,这不适用于休闲字符串(返回值始终为 0)。这样的功能还存在吗?
解决方案
什么atoi
是将“整数字符串”转换为整数值。这与itoa
.
该字符串"elephant"
没有数字含义。如果你想把它编码成一个int
你需要一个 8 字节的整数和一个字节序的约定。任何更长的字符串都需要拆分为多个整数值。
显然,它的实用性相当可疑,因为它比字节数组有什么优势?
所以简短的回答是没有函数,因为没有将任意字符串编码为整数。请记住,在大多数平台上只有 2 32或 2 64 个可能的整数值,但在典型的现代计算机上可能有2 2 36 个字符串值。
您不能将 2 68719476736 个可能的字符串值(例如 8GB)映射为 2 64整数。
如果您确实想将任意单词映射到数字,则需要一个查找表,例如字典,为每个可能的输入单词分配一个预定义的整数值。由于不存在这样的单词列表,详尽的列表太大了,并且没有关于大象有多少数字的标准,尽管表情符号,这是你必须自己制作的东西。
推荐阅读
- sql - 在 SQL Server 中的视图内迭代
- python - 如何在 python 中以良好的格式(垂直对齐)打印这些信息?
- android - Android 布局:LinearLayout 等大小的圆圈
- python - 如何使用可移植的 python.exe 启动 python 包?找不到包裹
- c# - OrderBy 子句在 Entity Framework Core 3 中破坏了我的控制器
- c++ - cout 返回两次 char 字符串
- python - ElementTree / Python - 如何在节点中插入单个标签?
- python - Django-Elasticsearch-DSL 嵌套范围查询
- angular - 服务变量更新但在组件中不更新
- javascript - 如何将 Promise 的设置值作为 JavaScript 属性值?