[英]Best way to compare ASCII value
大家好,我剛剛開始學習c類,但是我對比較C語言中的ASCII值有疑問。
假設我有一個單詞“ hello”,我想檢查ASCII表中的“ h”是否匹配104,通常會匹配104。 因此,盡管我似乎發現此方法並不十分有效,但我正在使用以下代碼來執行此操作。 所以我想知道是否還有其他方法。
char word [] = "hello";
if (("%d", word[0]) == 104) puts("Yay");
抱歉,這是一個愚蠢的問題,但在我看來似乎並不那么有效。
非常感謝!
編輯:我發現效率低下的部分是:
("%d", word[0])
您的("%d", word[0])
看起來像是printf
調用,但缺少printf
。 但是,由於您沒有調用函數,因此實際上根本沒有這樣的功能。 它只是一個逗號運算符,它計算左參數( "%d"
),丟棄結果,並使用右參數。
"%d"
是一個沒有副作用的表達式,因此評估它完全不起作用。
您的測試可以簡化為if(word[0] == 104)
,它執行相同的操作。 甚至更好的是,將其縮短為if(word[0] == 'h')
,該值仍然相同但可讀。
您可以在C中直接比較char
和int
類型,因此下面的代碼:
char word[] = "hello";
if(word[0] == 104) puts("Yay");
如果相當於您的代碼段。
char word [] = "hello";
if (("%d", word[0]) == 104) puts("Yay");
等效代碼為:
if('h' == 104) puts("Yay");
最后的轉換:
puts("Yay");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.