我有一个指针(* ascii),它指向一个char,我希望它是一个int值,以使它成为一个if语句,如
if ( ascii == 32 || ((ascii > 96) && (ascii < 123)) {
}
这不起作用,我将不胜感激
答案 0 :(得分:8)
您的代码无效,因为您正在检查指针的值(内存地址)而不是指向的东西的值。请记住,指针是一个地址,您必须取消引用才能获取该地址的值。
一旦取消引用,您可以简单地将char类型与这些值进行比较:
char ascii_char = *ascii;
if ( ascii_char == 32 || ((ascii_char > 96) && (ascii_char < 123))
{
}
答案 1 :(得分:3)
在变量名称
之前加上*if ( *ascii == 32 || ((*ascii > 96) && (*ascii < 123)) {
}
或者只是将其分配给另一个变量并改为使用
int a = *ascii
if ( a == 32 || ((a > 96) && (a < 123)) {
}
答案 2 :(得分:1)
为什么要使用ASCII值?
以下会更具可读性:
char ascii_char = * ascii;
if(ascii_char ==''||((ascii_char&gt; ='a')&amp;&amp;(ascii_char&lt; ='z'))
{
}
答案 3 :(得分:0)
我相信这会解决问题
int asciiNum = (int)*ascii;
答案 4 :(得分:0)
如果你不是指仅仅比较第一个字符而是存储在ascii指针中的数字,那么使用atoi()函数将char数组转换为数字然后进行比较。