在char数组中存储整数和添加
Storing integers in char array and adding
我已经知道可以在char数据类型中存储0-255的数字。因此,我尝试了以下代码:
#include <stdio.h>
int main()
{
unsigned char num[4];
int sum=0;
int i=0;
printf("Enter Four Digit Numbern");
while(i<4)
{
scanf("%1d",&num[i]);
i++;
}
sum=(int)num[0]+(int)num[1]+(int)num[2]+(int)num[3];
printf("Sum of digits: %d",sum);
return 0;
}
似乎运行正确,但一旦我将以下代码放入while循环中,每次循环重复和代码中断时,i
的值都会变为零:
sum=sum+(int)(num[i]); i++;
我使用代码::块与MinGW编译器
使用字符类型存储数字时要非常非常小心。signed char
的范围取决于您的编译器和操作系统。大多数情况下,最小值为-128,最大值为127。在其他方面可能有所不同。当您期望范围从0-255时,这可能会出现问题。如果您想使用char
来存储数字,请使用unsigned char
,因为它的范围是0-255。
因为字符(有符号或无符号)的数字表示形式不受约束,所以我通常通过编写一个函数来解决这个问题,该函数使用数组来赋值和查找数值。(但是,我几乎从不这样做,使用整数更容易…)
如果您想将整数值添加到特定索引
char a[10];
int i=9;
a[2]=boost::lexical_cast<char>(i)
发现这是将char转换为int的最佳方式,反之亦然。
这对我来说很好。
while(i < 4){
scanf("%1d", &num[i]);
sum += (int)(num[i++]);
}
相关文章:
- 添加存储在向量中的大整数的函数出现问题
- 当我们从/tp地址中添加/减去一个整数时会发生什么
- 如何在 sqlite3 中的表中添加整数列表
- 使用指针将 ASCII 值添加到整数
- 我正在尝试制作一个程序,在添加 n 天(整数)后告诉一个人什么是一天(例如星期一等)
- C++向数组添加元素并调整数组大小
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- 斯塔克,堆栈,也可以在底部和顶部添加整数
- 通过在带有 C++ 的列表中添加连续元素来计算新的整数列表
- 计算机使用什么方法添加无符号整数
- 如何拆分整数并将所有内容添加到数组中?
- 调整数组大小并添加元素 C++
- 将整数添加到数组值而无需调用它的最安全方法
- 在C++中使用 cin 同时将整数添加到数组中
- 将整数添加到字符
- Qt:QTableWidget 将整数添加到表中
- 将多个整数添加到一个向量索引? 'Cout'不起作用
- 如何将多个整数添加到字符数组中,然后将它们拉出
- 无法将整数添加到标准::复杂<double>
- 为股票类的整数添加分配内存