Tag: atoi

atoi和前导0表示十进制数

在CI中使用atoi ,我试图将char数组转换为int 。 我的号码虽然领先0 ,但是当我稍后打印这些号码时它们不会被保留。 char num[] = “00905607”; int number; number = atoi(num); printf(“%d”, number); 这个输出将是905607 ,我希望它是00905607 。 有任何想法吗?

C将字符串转换为Ints问题

我正在尝试解析嵌入式系统上的一些输入。 我期待这样的事情: SET VARNAME=1,2,3,4,5,6,7,8,9,10\0 当我将单独的字符串转换为int时,如果字符串以8开头, atoi()和strtol()似乎都返回0。 这是我的代码: char *pch, *name, *vars; signed long value[256]; int i; #ifdef UARTDEBUG char convert[100]; #endif if(strncmp(inBuffer, “SET”,3)==0) { pch = strtok(inBuffer,” “); pch = strtok(NULL,” “); name = strtok(pch, “=”); vars = strtok(NULL,”=”); pch = strtok(vars,”,”); i = 0; while(pch != NULL) { value[i] = atoi(pch); #ifdef UARTDEBUG snprintf(convert, […]

使用atoi和char

有没有办法在C中将char转换为字符串? 我试着这样做: char *array; array[0] = ‘1’; int x = atoi(array); printf(“%d”,x);

关于错误的atoi()的行为,我可以假设什么?

标准C库函数atoi在ISO 9899:2011中记录为: 7.22.1数字转换函数 1 atof , atoi , atol和atoll函数不需要影响错误的整数表达式errno的值。 如果无法表示结果的值,则行为未定义。 … 7.22.1.2 atoi , atol和atollfunction 概要 #include int atoi(const char *nptr); long int atol(const char *nptr); long long int atoll(const char *nptr); 描述 2 atoi , atol和atoll函数分别将nptr的字符串的初始部分转换为int , long int和long long int表示。 除了出错的行为,它们相当于 atoi: (int)strtol(nptr, (char **)NULL, 10) atol: strtol(nptr, (char **)NULL, 10) atoll: strtoll(nptr, […]

将“整数字符串”转换为整数数组

我正在尝试将一个整数数组传递给我的程序。 有没有更好的方法将其转换为整数? 我目前收到一个错误:“可能无法初始化变量大小的对象” for(i = 0; i < argc; i++) { int arr[i] = atoi(argv[i]); }

创建atoifunction

我正在尝试创建自己的atoifunction。 通过以下我得到的返回值为0.无论我改变函数中的数字变量,我得到的是返回值。 有关修改代码的任何建议吗? //my atoi function int atoi_me(char *numstring) { int number = 0; while((*numstring >= ‘0’) && (*numstring <= '9')) { number = (number * 10) + (*numstring – '0'); numstring++; } return number; } int main() { char *number[MAXSIZE]; int num; printf("Please enter a number:\n"); scanf("%c", &number); num = atoi_me(*number); printf("%d", num); return […]

C编程:只从fgets打印int

看到这个main : int main(void) { int i; int ch; char str[512]; fgets(str, sizeof str, stdin); for (i = 0; i <= (strlen(str)); i++) { if (str[i] != '\0' && str[i] != '\n') { int num = atoi(&str[i]); printf("%d\n", num); } } return 0; } 我希望得到用户的数字,并获得所有数字,没有任何spaces或tabs 。 例如: 输入1 2 3 。 但在这种情况下这输出: 1 2 2 […]

在C中实现atoi

我无法理解以下atoi实现代码,特别是这一行: k = (k<<3)+(k<<1)+(*p)-'0'; 代码: int my_atoi(char *p) { int k = 0; while (*p) { k = (k<<3)+(k<<1)+(*p)-'0'; p++; } return k; } 有人可以向我解释一下吗? 另一个问题: atof实现算法应该是什么?

你如何使用atoi来分配char数组的各个元素?

所以我们都知道, atoi将char转换为数字。 但是,如果你只想要一个数组元素而不是整个数组,你会怎么做? 请看以下内容: for (h = 0; h < 5; h++) { num[h] = atoi(temp[h]); } 假设num是int类型的数组,temp是和char类型的数组。 这给了我一个恼人的转换问题: 从’char’到’const char *’的转换无效 有关如何使用atoi将char数组的单个元素转换为int的任何建议?

来自hex表示字符串的atoi()

需要从hex表示字符串中生成int,如”0xFA”或更好的”FA” 。 需要像atoi(“FA”)这样的东西。 那有什么标准的解决方案吗?