我要求助了,被C的类型搞死了
问题大致如下:
这是一个类似于输入框的程序,当键盘输入数字时,输入框的数字会在后面追加一位,当输入擦除键的时候,输入框的数字会删除最后一位。
下面的程序中:
strNumValue是一个unsigned char类型的公共字符数组变量
strNum是输入的数字,是unsigned char类型的字符变量
编译时,无法通过,提示strlen(strNumValue)函数从unsigned char*到const char*非法转换。
请高手看看问题出在哪里了,怎么改?
unsigned char strNumValue;
//……
void SetNumValue( unsigned char strNum )
{
if(strNum=='-')
{
strNumValue = '\0';//将数组的最后一个数字字符改为结束标记
}
else
{
strcat(strNumValue,strNum);
}
//……
unsigned char strNumValue;
……
void SetNumValue( unsigned char strNum )
{
if(strNum=='-')
{
strNumValue = '\0';//将数组的最后一个数字字符改为结束标记
}
else
{
strcat(strNumValue,strNum);
}
…… 本帖最后由 pathletboy 于 2016-7-5 11:32 编辑
不知道为什么你需要使用strlen
#define NUM_BUFFER_SIZE 5
typedef struct
{
unsigned char buffer;
unsigned int index;
} num_buffer_t;
num_buffer_t nums = {
index: 0
};
void SetNumValue( unsigned char strNum )
{
switch (strNum)
{
case '-':
if (nums.index > 0)
{
nums.buffer = 0;
}
break;
default:
if (nums.index < NUM_BUFFER_SIZE - 1)
{
nums.buffer = strNum;
nums.buffer = 0;
}
break;
}
} pathletboy 发表于 2016-7-5 11:29 static/image/common/back.gif
不知道为什么你需要使用strlen
#define NUM_BUFFER_SIZE 5
谢谢高手指点啊
页:
[1]