最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中字母大小寫轉(zhuǎn)化簡單示例

 更新時間:2022年11月23日 11:44:19   作者:jebe_lwb  
在C語言中,有時候我們遇到這樣的考題,將c語言大寫字母轉(zhuǎn)化為小寫字母,下面這篇文章主要給大家介紹了關(guān)于C語言中字母大小寫轉(zhuǎn)化的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下

C語言入門的時候都會遇到要求寫大小寫轉(zhuǎn)換的題目

這類題目主要通過ASCII(美國信息交換標(biāo)準(zhǔn)代碼)碼差值實現(xiàn),

A對應(yīng)ASCII碼十進(jìn)制數(shù)字是65,a對應(yīng)ASCII碼十進(jìn)制數(shù)字是97,

即大小寫字母之間ASCII碼差值為32,想要將大寫字母轉(zhuǎn)換為小寫字母可以將該字符ASCII碼值+32,同理小寫字母轉(zhuǎn)換成大寫字母只需將該字符ASCII碼值-32。

咱們先來看看這個代碼:

 咋一看,欸?很不錯,沒啥毛病,編譯運行試一下,發(fā)現(xiàn)還不錯

 確實可以,但是.....這樣呢?

 啊這.........這是怎么回事呢?

原來,

 我們之前的這個else,它的執(zhí)行條件是之前if里的范圍的補集,也就是說只要是在(x<='a'||x>='z')的范圍內(nèi),它都會執(zhí)行“x=x+32”,所以出現(xiàn)上述輸入字符,也能輸出的情況。

這個時候,只要具體化else的執(zhí)行條件,將其變成else if,即可。

如下:

 這樣就可以啦!

附一個C語言字母大小寫互換的簡單方法

字母的大小寫互換其實很簡單

回到最基本的數(shù)據(jù)的存儲形式,從八位二進(jìn)制角度去看大寫字母和小寫字母,你會發(fā)現(xiàn)它們的低四位是相同的,高四位有細(xì)微差別。

舉例:

ASCIIDECBIN
‘A’6501000001
‘a’9701100001
‘B’6601000010
‘b’9801100010
‘X’8801011000
‘x’12001111000

仔細(xì)觀察 發(fā)現(xiàn)是第六位不同!

大小寫互換的方法

  • 考慮到低四位完全相同 只用互換高四位的第六位就可以實現(xiàn)大小寫互換
  • 互換高四位的某一位而不改變低四位,我們聯(lián)想到位運算中的按位異或^ 關(guān)于按位異或 詳見按位異或
  • 由按位異或的知識,我們可以尋找一個數(shù),使得任意的一個八位二進(jìn)制數(shù)與它進(jìn)行異或操作后,高四位的第六位01取反,低四位不變
  • 回顧我們的目標(biāo) 假如把'A'變?yōu)?#39;a' 我們需要把01000001變?yōu)?1100001,也就是把第六位的0變?yōu)? 。
  • 我們找到這個數(shù)了!它的二進(jìn)制是00100000 十進(jìn)制是32
  • 01000001^00100000=01100001,是不是很神奇?同理把小寫字母'a'變?yōu)?#39;A'也只需要把它與32進(jìn)行按位異或操作就可以啦~
#include<stdio.h>
int main(){
    int i;
    char s[100];
    //讀入字符串
    gets(s);
    for(i=0;s[i]!='\0';i++)
    {
        if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))
        s[i]^=32;//核心語句,實現(xiàn)字符串中字母的大小寫互換
    }
    printf("%s",s);
    return 0;
}

樣例輸入->

Hello,Java!

樣例輸出->

hELLO,jAVA!

總結(jié)

到此這篇關(guān)于C語言中字母大小寫轉(zhuǎn)化的文章就介紹到這了,更多相關(guān)C語言字母大小寫轉(zhuǎn)化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++可變參數(shù)函數(shù)的實現(xiàn)方法示例

    C++可變參數(shù)函數(shù)的實現(xiàn)方法示例

    這篇文章主要給大家介紹了關(guān)于C++可變參數(shù)函數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • C語言線性表順序存儲結(jié)構(gòu)實例詳解

    C語言線性表順序存儲結(jié)構(gòu)實例詳解

    這篇文章主要介紹了C語言線性表順序存儲結(jié)構(gòu)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++取得當(dāng)前時間的方法

    C++取得當(dāng)前時間的方法

    這篇文章主要介紹了C++取得當(dāng)前時間的方法,實例展示了通過系統(tǒng)函數(shù)獲取當(dāng)前時間的實現(xiàn)方法,非常簡單易懂,需要的朋友可以參考下
    2014-10-10
  • c++ 指針與引用的區(qū)別介紹及使用說明

    c++ 指針與引用的區(qū)別介紹及使用說明

    指針與引用看上去完全不同(指針用操作符*和->,引用使用操作符.),但是它們似乎有相同的功能,感興趣的朋友可以了解下啊,或許本文對你有所幫助,好了,話不多說,切入正題
    2013-01-01
  • C語言數(shù)據(jù)類型和格式說明符基礎(chǔ)教程示例

    C語言數(shù)據(jù)類型和格式說明符基礎(chǔ)教程示例

    這篇文章主要為大家介紹了C語言數(shù)據(jù)類型和格式說明符基礎(chǔ)教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 如何用C++實現(xiàn)A*尋路算法

    如何用C++實現(xiàn)A*尋路算法

    尋路是游戲比較重要的一個組成部分。因為不僅AI還有很多地方(例如RTS游戲里操控人物點到地圖某個點,然后人物自動尋路走過去)都需要用到自動尋路的功能。本文將介紹一個經(jīng)常被使用且效率理想的尋路方法-A*尋路算法,并且提供額外的優(yōu)化思路
    2021-06-06
  • C語言中如何判斷質(zhì)數(shù)

    C語言中如何判斷質(zhì)數(shù)

    這篇文章主要介紹了C語言中的判斷質(zhì)數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • C語言內(nèi)存函數(shù) memcpy,memmove ,memcmp

    C語言內(nèi)存函數(shù) memcpy,memmove ,memcmp

    這篇文章主要介紹了C語言內(nèi)存函數(shù) memcpy,memmove ,memcmp,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • MFC實現(xiàn)簡單計算器

    MFC實現(xiàn)簡單計算器

    這篇文章主要為大家詳細(xì)介紹了MFC實現(xiàn)簡單的計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • Qt模仿實現(xiàn)文字浮動字母的效果

    Qt模仿實現(xiàn)文字浮動字母的效果

    這篇文章主要介紹了通過Qt實現(xiàn)的文字浮動的效果,效果很簡單就是文本向上移動,在移動過程中文字整體變大或縮小。感興趣的可以試一試
    2022-01-01

最新評論

九龙县| 林芝县| 花莲县| 砀山县| 阳东县| 确山县| 东源县| 池州市| 榆社县| 三都| 陆川县| 罗山县| 鄂州市| 资源县| 花垣县| 卢湾区| 观塘区| 商丘市| 科技| 青川县| 龙口市| 乌恰县| 波密县| 青阳县| 乡城县| 运城市| 夏津县| 历史| 江油市| 晋城| 清新县| 红河县| 会昌县| 阳东县| 天全县| 无极县| 建德市| 江西省| 临颍县| 隆德县| 阜康市|