C語言字符串另類用法的實現(xiàn)
講這個例子前,咱們先來看一個簡單的程序:
字符串?dāng)?shù)組實現(xiàn)數(shù)字轉(zhuǎn)字母:
#include <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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 <stdio.h>
#include <string.h>
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。
#include <stdio.h>
int 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 ;
}
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對我們的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
欄 目:C語言
下一篇:嵌入式項目使用C語言結(jié)構(gòu)體位段特性實現(xiàn)斷言宏校驗數(shù)據(jù)范圍有效性的方法
本文標(biāo)題:C語言字符串另類用法的實現(xiàn)
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/611.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對數(shù)怎么表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實例總結(jié)
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時候用欄目交叉功能?


