相关疑难解决方法(0)

如何将单个char转换为int

我有一串数字,例如"123456789",我需要提取它们中的每一个以在计算中使用它们.我当然可以通过索引访问每个char,但是如何将其转换为int?

我查看了atoi(),但它需要一个字符串作为参数.因此,我必须将每个char转换为字符串,然后在其上调用atoi.有没有更好的办法?

c++ char

56
推荐指数
3
解决办法
21万
查看次数

C中的char到int转换

如果我想将单个数字转换为char数字值,例如,如果:

char c = '5';
Run Code Online (Sandbox Code Playgroud)

而我想c坚持5而不是'5',100%便携式这样做吗?

c = c - '0';
Run Code Online (Sandbox Code Playgroud)

我听说所有字符集都按顺序存储数字,所以我假设是这样,但我想知道是否有一个有组织的库函数来进行这种转换,以及它是如何按常规方式完成的.我是一个真正的初学者:)

c char

35
推荐指数
4
解决办法
15万
查看次数

请解释这段代码在做什么(someChar - 48)

我正在经历一些练习问题,我看到了这段代码:

#include <stdio.h>
#include <string.h>

int main(void) {
   char* s = "357";
   int sum = 0;
   int i = 0;
   for (i = 0; i < strlen(s); i++) {
     sum += s[i] - 48;
   }
   printf("Sum is %d", sum);

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释代码的作用,尤其是48部分的减法吗?

c encoding ascii char

7
推荐指数
2
解决办法
9896
查看次数

C中的ASCII char到int转换

可能重复:
C中的char到int转换

我记得很久以前在一门课程中学习通过减去'0'从ASCII字符转换为int是不好的.

例如:

int converted;
char ascii = '8';

converted = ascii - '0';
Run Code Online (Sandbox Code Playgroud)

为什么这被认为是一种不好的做法?是因为某些系统不使用ASCII吗?这个问题长期困扰着我.

c

5
推荐指数
1
解决办法
6283
查看次数

标签 统计

c ×3

char ×3

ascii ×1

c++ ×1

encoding ×1