這道題其實很簡單,有好幾種做法。
我們都知道大寫字母a-z的編碼是65-90,小寫字母的編碼a-z是97-112。
首先先看這張:
由圖中的**可以觀察得出:
很直觀可以看出,大寫字母和小寫字母的ascii碼值相差32;
通過仔細觀察相應的二進位制,可以得出大寫字母和小寫字母二進位制的第5位(從右往左從0開始數)正好相反。這也恰恰印證了第一點的ascii碼值相差32。
大小寫是由二進位制的第5位來區分的。
第5位為1即為小寫,第5位為0即為大寫
因此可以利用異或、與、或三種運算,保持其他位不變而只改變該位即可。
#include
using
namespace std;
intmain()
#include
using
namespace std;
intmain()
當然要想到庫函式啦,要用到頭檔案 ctype.h
#include
#include
using
namespace std;
intmain()
望各位大佬指點,qwq。 字母大小寫轉換
好久沒寫博了,準備繼續搞起。今天先寫個簡單的,字母的大小寫轉換。問題1 給定乙個字串 asdfghj 把它全部轉為大寫字母或者小寫字母。這問題是不是太簡單了點,現有的各種函式庫裡面都有什麼strtoupper strtolower 之類的轉換函式。自己手寫乙個呢?這讓我想起以前上機實驗寫c程式的時候...
js字母大小寫轉換
tolocaleuppercase 方法 返回乙個字串,其中所有的字母字元都被轉換為大寫,同時適應宿主環境的當前區域設定。stringvar.tolocaleuppercase 必選的 stringvar 引用是乙個 string 物件,值或文字。說明tolocaleuppercase 方法轉換字串...
c 字母大小寫轉換
今天突然有了點空閒時間,又剛好看到乙個需要轉換字母大小寫的問題,於是就來這裡聊一下 首先,我們要知道可行的轉換方法 一 ascall碼 使用ascall碼轉換的原理是乙個字母的大小寫ascall碼之差為32.因此大致思路為先判斷大小寫,再進行相應的 32 includeusing namespace...