DAVID J.馬蘭:假設我想 實現一個提示程序 為一個字符串的用戶,然後前進 充分利用自己的輸入, 將任何小寫字母 他們鍵入大寫字母。 好吧,讓我們繼續前進, 實施該計劃。 讓我們首先包括cs50.h其次 通過包含stdio.h中。 所以,我們可以使用strlen的, 讓我們包括string.h中。 讓我們接下來的聲明主要為整型主空 而現在讓我們繼續提示 用戶輸入的字符串。 printf的,讓我們來促使他們 對於某些輸入。 現在讓我們來聲明一個字符串 - 我們會打電話給它s - 並存儲在它調用的結果 在CS50庫函數GetString的。 讓我們現在開始遍歷每個 s中,資本的字符 我們所看到的任何小寫字母。 對於int,我得到0。 讓我們也宣告n作為等於 s的字符串的長度,這樣我們就可以 從我重複,直到n,則 第長度,並在每個 迭代增量的我。 然後在這個循環中,讓我們 首先檢查當前字母 - s的第i個字母,可以這麼說 - 一個小寫字母。 如果s托架i是大於或等於 以小寫a,它的少 大於或等於小寫Ž - 現在,如果我們要轉換為小寫 字母為大寫,先記得, ASCII中的小寫字母a為97 和一個大寫字母A是65。 與此同時,一個小寫b為98, 和一個大寫的B是66。 如果我們繼續來看看這個模式, 我們將看到,小寫 字母總是32值高 比大寫字母。 因此,如果我們想從小寫轉換 為大寫,它應該 足夠了,真的,減去 32來自用戶的輸入。 或者更一般地,只是減去該 一個小寫的a和a之間的區別 A.資本 如何表達呢? 好吧,讓我們做它的代碼。 printf的,報價,引文結束“%c”按鈕打印 當前字符,然後是 印刷無論是在S支架I減 做一個小寫的結果 減去大寫分號。 換句話說,此括號內的 表情,小負大A,是 要返回我們 當天32的端部。 但我沒有記 它的32。 我可以讓電腦搞清楚 什麼小寫之間的差 一,資本A是。 同時,一旦我知道的區別, 我可以從s中減去 支架我,這將採取什麼樣的 大概是小寫字母的 較低的值,即對應的值 到大寫等價的。 現在,讓我們保存,編譯, 並運行此程序。 使利用點斜線資本化。 和我的投入將是打招呼。 我們在那裡有,你好。 現在我的提示下,無可否認,是 有點難看,因為我們已經 省略了印刷的一個位。 並讓我們回去,並添加。 這個程序的最底部, 我很乾脆,而且大多為 美觀的目的,將要添加的printf, 報價,引文結束反斜杠Ñ。 讓我們重新保存這個文件, 重新編譯,重新運行。 使資本,點斜線把握。 再次,輸入我將提供“你好” 在所有的小寫,現在敲回車, 和“你好”,更乾淨地印刷。