如何string(char* || char[])
在C中解析整数?是否有与Integer.parseInt(String)
C中Java方法相同的方法?
如果要将整数转换为字符串,请尝试使用该函数snprintf()
.
如果要将字符串转换为整数,请尝试使用函数sscanf()
或atoi()
或atol()
.
要将int转换为字符串:
int x = -5; char buffer[50]; sprintf( buffer, "%d", x );
你也可以做双打:
double d = 3.1415; sprintf( buffer, "%f", d );
要将字符串转换为int:
int x = atoi("-43");
有关这些功能的文档,请参见http://www.acm.uiuc.edu/webmonkeys/book/c_guide/.
这听起来像你有一个字符串,并希望将它转换为整数,从提到的角度来看parseInt
,尽管问题不是很清楚......
为此,请使用strtol
.这个函数稍微复杂一点atoi
,但作为回报,它提供了一个更清晰的错误条件指示,因为它可以填充一个指针(调用者提供)与第一个字符的地址混淆.然后,调用者可以检查有问题的字符并确定该字符串是否有效.atoi
相比之下,只要它丢失就返回0,这并不总是有用 - 尽管如果你对这种行为感到满意,那么你也可以使用它.
以下示例使用strtol
.检查错误非常简单:如果第一个无法识别的字符不是'\x0'
字符串的结尾,那么该字符串被认为不包含有效的int.
int ParseInt(const char *s,int *i) { char *ep; long l; l=strtol(s,&ep,0); if(*ep!=0) return 0; *i=(int)l; return 1; }
如果字符串包含有效整数,则此函数用整数填充*i并返回1.否则,它返回0.