怎么在C語言中實現(xiàn)字符串的另類用法?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)建站專業(yè)提供溫江服務(wù)器托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買溫江服務(wù)器托管服務(wù),并享受7*24小時金牌售后服務(wù)。字符串?dāng)?shù)組實現(xiàn)數(shù)字轉(zhuǎn)字母:
#include#include int main(void) { int num = 15 ; //26個字母 const char str[] = "abcdefghijklmnopqlstuvwxyz" ; //這個做法是將num這個十進(jìn)制數(shù)通過取模轉(zhuǎn)換為字母并輸出,從程序看,即可知道是輸出p char a = str[num%26] ; printf("a=%c\n",a); return 0 ; }
當(dāng)然我們也可以這么寫,用指針的形式來表示:
#include#include int main(void) { int num = 15 ; char *str = "abcdefghijklmnopqlstuvwxyz" ; char a = str[num%26] ; printf("a=%c\n",a); return 0 ; }
同樣的,結(jié)果也是和上面是一樣的,我們再對這種寫法進(jìn)行簡化,如果初學(xué)者的基礎(chǔ)不扎實,也許一看就懵了。
#include#include int main(void) { int num = 15 ; //char *str = "abcdefghijklmnopqlstuvwxyz" ; char a = "abcdefghijklmnopqlstuvwxyz"[num%26] ; printf("a=%c\n",a); return 0 ; }
其實不用驚訝,這樣的寫法和前面兩種的意思是一樣的,只不過將str替換成了一串字符串。正是因為有了這種做法,所以在寫進(jìn)制轉(zhuǎn)換的時候,可以使用這樣的技巧來實現(xiàn),當(dāng)然,作為開發(fā)者,寫出可讀性高的代碼來說,我并不推崇這樣的寫法。
既然可以向上面這么寫,那也就可以向下面這么寫,輸出的結(jié)果是4個3。
#includeint main(void) { char *p = "0123456789abcdef" ; putchar(p[3]); //換行 putchar('\n'); putchar(*(p + 3)); putchar('\n'); putchar("0123456789abcdef"[3]); putchar('\n'); putchar(*("0123456780abcdef"+3)); putchar('\n'); return 0 ; }
看完上述內(nèi)容,你們掌握怎么在C語言中實現(xiàn)字符串的另類用法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。