簡體   English   中英

如何將指針轉換為c中的int(以獲取其ascii值)

[英]How to cast a pointer to an int in c ( to get its ascii value )

我有一個指向char的指針(* ascii),我希望將其作為int值,以便使其成為if語句,例如

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

}

這是行不通的,我將不勝感激

您的代碼不起作用,因為您正在檢查指針(內存地址)的值,而不是所指向事物的值。 請記住,指針是一個地址,您必須取消引用它才能獲取該地址的值。

取消引用后,您可以簡單地將char類型與這些值進行比較:

 char ascii_char = *ascii;

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

 }

只需在變量名稱前加*

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

}

或只是將其分配給另一個變量並改用它

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

}

為什么要輸入ASCII值?

以下將是更具可讀性的方式:

char ascii_char = * ascii;

如果(ascii_char ==''||((ascii_char> ='a')&&(ascii_char <='z'))

{

}

我相信這可以解決問題

int asciiNum = (int)*ascii;

如果您不只是比較第一個字符,而是存儲在該ascii指針中的數字,則使用atoi()函數將char數組轉換為數字,然后進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM