【发布时间】:2013-05-31 09:44:24
【问题描述】:
我想将 char 数组的内容复制到 int 变量或数组中。例如,前五个值必须转到一个 int 数组 (int x):
char a[] = "123456";
我在其他线程中看到要将 char 更改为 int,我需要这样做:
int x = a[0] - '0';
还有其他方法吗?
如果我想要两个或多个一组的值,例如 12、34 和 56,该怎么办?
如果我没有将它们保存为整数,而是浮点数或其他类型怎么办?
【问题讨论】:
-
您的问题要求太多。可以完成您想要完成的所有事情,但是您需要为每个任务编写一些代码。最通用的方法是使用 Union。
-
你可以随时
sscanf(),例如char a[] = "123456"; int b, c, d; sscanf(a, "%2d%3d%d", &b, &c, &d); printf("b=%d; c=%d; d=%d\n", b, c, d); -
@pmg 但是,只要
strtol()和strtod()可用,您为什么要这样做? -
@H2 因为使用 scanf 您可以在一次操作中给出长度并将其转换为 12、34、56。
-
@H2CO3:查看我的编辑。可能有理由避免复制数字。使用
sscanf(),您可以将转换限制为 2 或 3 或任何数字。
标签: c char type-conversion