這個是很簡單的。你可以將字母a用數字的方式打印出來試試,如printf("%d","a");輸出是97,那麼只要減去96就可以了。順便說一下,首先char其實就是8位的整數變數,但是由於ASCII碼的編碼也是8位,所以常常使用char來表示ASCII字元,因此char也叫字元變數。所以char變數的本質就是數字。不難發現透過查詢ASCII表,a的編碼的十進位制數就是97。當然你也會發現a和A的編碼是不一樣的,如果你的功能是輸入a和A輸出都是1,那麼就要提前判斷一下。
當然你也可以透過判斷來實現這個功能,如:
char temp = getchar();
if(temp == "a")
......
else if(temp == "A")
else if(temp == "f")
還有,可以透過switch來實現,如:
switch(temp)
{
case "a":
break;
case "A":
default:break;
}
需要宣告一下,由於char本身就是數字,所以是可以使用switch的,但是不要妄圖透過switch來判斷字串變數(char[])這是不可行,雖然你可能在其他的高階語言中看到過這種用法,但是在C中是不能執行的。
這個是很簡單的。你可以將字母a用數字的方式打印出來試試,如printf("%d","a");輸出是97,那麼只要減去96就可以了。順便說一下,首先char其實就是8位的整數變數,但是由於ASCII碼的編碼也是8位,所以常常使用char來表示ASCII字元,因此char也叫字元變數。所以char變數的本質就是數字。不難發現透過查詢ASCII表,a的編碼的十進位制數就是97。當然你也會發現a和A的編碼是不一樣的,如果你的功能是輸入a和A輸出都是1,那麼就要提前判斷一下。
當然你也可以透過判斷來實現這個功能,如:
char temp = getchar();
if(temp == "a")
......
else if(temp == "A")
......
else if(temp == "f")
......
還有,可以透過switch來實現,如:
char temp = getchar();
switch(temp)
{
case "a":
......
break;
case "A":
......
break;
default:break;
}
需要宣告一下,由於char本身就是數字,所以是可以使用switch的,但是不要妄圖透過switch來判斷字串變數(char[])這是不可行,雖然你可能在其他的高階語言中看到過這種用法,但是在C中是不能執行的。