Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C中将临时字符串转换为int_C_String_Int - Fatal编程技术网

在C中将临时字符串转换为int

在C中将临时字符串转换为int,c,string,int,C,String,Int,作为标题,我需要将象大象这样的随意字符串转换为int类型。我已经知道stdlib.h库的atoi和strtol函数。然而,这些不适用于临时字符串,返回值始终为0。这样的函数还存在吗?atoi所做的是将整字符串转换为整数值。这与itoa相反 字符串大象没有数字意义。如果您想将其编码为int,则需要一个8字节的整数,后面是一个。任何更长的字符串都需要拆分为多个整数值 显然,这种方法的实用性相当可疑,因为它与字节数组相比有什么优势 简单的回答是没有函数,因为没有将任意字符串编码成整数。记住,在大多数平

作为标题,我需要将象大象这样的随意字符串转换为int类型。我已经知道stdlib.h库的atoi和strtol函数。然而,这些不适用于临时字符串,返回值始终为0。这样的函数还存在吗?

atoi所做的是将整字符串转换为整数值。这与itoa相反

字符串大象没有数字意义。如果您想将其编码为int,则需要一个8字节的整数,后面是一个。任何更长的字符串都需要拆分为多个整数值

显然,这种方法的实用性相当可疑,因为它与字节数组相比有什么优势

简单的回答是没有函数,因为没有将任意字符串编码成整数。记住,在大多数平台上,只有232或264个可能的整数值,但在典型的现代计算机上,有2236个可能的字符串值

无法将268719476736个可能的字符串值(例如8GB)映射为264整数


如果您确实想将任意单词映射到数字,则需要一个查找表,如字典,为每个可能的输入单词指定一个预定义的整数值。由于不存在这样的单词列表,详尽的列表太大了,而且对于大象的数字也没有标准,尽管有表情符号,但这是你必须自己制作的。

你总是可以使用strncmp比较字符串

大概是

int strParse(char * str){   
  if(strncmp(str,"elephant",8) == 0) return 42;
  return 0;
 }

……等等。记住这需要时间

嗯。大象的整数是多少?@EugeneSh。很明显。@tadman Lol。我没想到它会出现:@xing甚至strtoll,大象给出1143700050233,但即使这样,也不足以容纳暴龙141987995361270070000。你可能在寻找一个简单的字符串哈希函数吗?也许是FNV?@EugeneSh。我是说另一个。编辑,就像。。。每一个随意的字符串?就像他应用程序中的每一个?大概要看他有多少。