[英]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.