无法#include <stdlib.h>
,现在我需要在内核模块中编写自己的int my_atoi(char* str)
函数。但是我认为必须有更简单的方法来使用此功能,以及stdlib中的其他方法(atof,itua等)。你知道吗?
答案 0 :(得分:2)
您可以通过以下方式从char*
转换为int
,而无需atoi
,
#include "ctype.h"
int charToInt(const char *s)
{
int n;
unsigned char sign = 0;
while (isspace(*s))
{
s++;
}
if (*s == '-')
{
sign = 1;
s++;
}
else if (*s == '+')
{
s++;
}
n=0;
while (isdigit(*s))
{
n = n * 10 + *s++ - '0';
}
return sign ? -n : n;
}
int main (){
const char * g = "123456";
printf("num:%d",charToInt(g));
return 0;
}
产生输出,
123456