【发布时间】:2010-11-25 17:30:50
【问题描述】:
gcc 4.5.1 c89
我有一个用 char 字符填充的缓冲区。我需要比较它们:
这是缓冲区的示例内容:
vote buffer [ 51 ]
vote buffer [ 32 ]
vote buffer [ 49 ]
vote buffer [ 32 ]
vote buffer [ 50 ]
vote buffer [ 32 ]
vote buffer [ 53 ]
vote buffer [ 32 ]
我正在尝试获取缓冲区中这些 char 的 int 等效值以进行比较。
#define NUMBER_OF_CANDIDATES 7
if((vote_data.vote_buff[i] > NUMBER_OF_CANDIDATES || vote_data.vote_buff[i] < 1) {
/* Do something */
}
正如你所看到的,在 if 语句中它永远不会是真的,因为范围要大得多。
我已尝试转换为 (int)。然而,这并没有解决问题。
我想我可以从 ascii 字符集计算。但是,如果我不能帮助它,我宁愿不增加更多的复杂性。
非常感谢您的建议,
【问题讨论】:
-
我不明白你的问题。可以肯定的是,51 的投票缓冲区 [0] 大于 7 的 NUMBER_OF_CANDIDATES。你能更精确一点吗?
-
51 是 ascii 字符 3。所以我需要将 3 与 NUMBER_OF_CANDIDATES 进行比较。谢谢。
标签: c