在C中将临时字符串转换为int
作为标题,我需要将象大象这样的随意字符串转换为int类型。我已经知道stdlib.h库的atoi和strtol函数。然而,这些不适用于临时字符串,返回值始终为0。这样的函数还存在吗?atoi所做的是将整字符串转换为整数值。这与itoa相反 字符串大象没有数字意义。如果您想将其编码为int,则需要一个8字节的整数,后面是一个。任何更长的字符串都需要拆分为多个整数值 显然,这种方法的实用性相当可疑,因为它与字节数组相比有什么优势 简单的回答是没有函数,因为没有将任意字符串编码成整数。记住,在大多数平台上,只有232或264个可能的整数值,但在典型的现代计算机上,有2236个可能的字符串值 无法将268719476736个可能的字符串值(例如8GB)映射为264整数在C中将临时字符串转换为int,c,string,int,C,String,Int,作为标题,我需要将象大象这样的随意字符串转换为int类型。我已经知道stdlib.h库的atoi和strtol函数。然而,这些不适用于临时字符串,返回值始终为0。这样的函数还存在吗?atoi所做的是将整字符串转换为整数值。这与itoa相反 字符串大象没有数字意义。如果您想将其编码为int,则需要一个8字节的整数,后面是一个。任何更长的字符串都需要拆分为多个整数值 显然,这种方法的实用性相当可疑,因为它与字节数组相比有什么优势 简单的回答是没有函数,因为没有将任意字符串编码成整数。记住,在大多数平
如果您确实想将任意单词映射到数字,则需要一个查找表,如字典,为每个可能的输入单词指定一个预定义的整数值。由于不存在这样的单词列表,详尽的列表太大了,而且对于大象的数字也没有标准,尽管有表情符号,但这是你必须自己制作的。你总是可以使用strncmp比较字符串 大概是
int strParse(char * str){
if(strncmp(str,"elephant",8) == 0) return 42;
return 0;
}
……等等。记住这需要时间 嗯。大象的整数是多少?@EugeneSh。很明显。@tadman Lol。我没想到它会出现:@xing甚至strtoll,大象给出1143700050233,但即使这样,也不足以容纳暴龙141987995361270070000。你可能在寻找一个简单的字符串哈希函数吗?也许是FNV?@EugeneSh。我是说另一个。编辑,就像。。。每一个随意的字符串?就像他应用程序中的每一个?大概要看他有多少。