如何在c中转换指向int的指针(获取其ascii值)

时间:2009-11-22 02:07:57

标签: c

我有一个指针(* ascii),它指向一个char,我希望它是一个int值,以使它成为一个if语句,如

if ( ascii == 32 || ((ascii > 96) && (ascii < 123)) {

}

这不起作用,我将不胜感激

5 个答案:

答案 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数组转换为数字然后进行比较。