gpt4 book ai didi

c - char 数组中的整数

转载 作者:行者123 更新时间:2023-11-30 17:48:10 25 4
gpt4 key购买 nike

我想知道如何在 char 数组中处理整数。例如,当我们对单个字符使用 scanf()printf() 函数时,我们对字符串值使用 "%c" “%s” 等。我使用 “%s” 来打印带有整数的 char 数组。但它会打印一些垃圾字符作为输出。

最佳答案

直接使用整数变量时,很简单:

int i = 7;
printf("%d", i);

在处理字符数组时,您可以创建辅助函数来执行 char* <-> int 之间的转换,这样您最终会得到更多可移植解决方案:

int toInt(unsigned char* p) {
return *(p + 0) << 24 | *(p + 1) << 16 | *(p + 2) << 8 | *(p + 3);
}
...
unsigned char arr[4] = {0,0,0,4};
int i = toInt(&arr[0]);
printf("%d", i);

应该打印4

或者,您可以使用简单的强制转换:

unsigned char arr[4] = {0,0,0,4};
int* i = &arr[0];
printf("%d", *i);

但该解决方案将取决于字节顺序。在 ideone.com 上,它打印 67108864

关于c - char 数组中的整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18692977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com