如何編寫一個大寫轉換函數


問題:使用C語言把字母轉換成大寫,不能使用庫函數。


這個題目可以考查編程的一些基本素養,例如命名與可讀性、函數的使用、非預期輸入的處理、簡單的算法、使用有意義的表達式而不是magic bumber.

關於代碼的正確性:我當時犯錯的有用了||而不是&&,沒有考慮等於a、z的邊界條件,輸入非字母時應該原樣返回,應計算輸入與a的差然後在A加上這個差即可。

經過修改,我的代碼如下。更完整更優秀的解答見http://zh.lucida.me/blog/from-wuxia-to-programmer-interview/

#include <stdio.h>
char upper (char);

int main(){
    char input ,output;
    scanf("%c",&input);
    output = upper(input);
    printf("%c",output);
    return 0;
}

char upper(char input){
    if ('a' <= input&&input >='z'){
        return input-'a'+'A';
    }
    return input;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章