国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言字符串另類用法的實現

2020-05-23 13:24:08
字體:
來源:轉載
供稿:網友

講這個例子前,咱們先來看一個簡單的程序:

字符串數組實現數字轉字母:

#include <stdio.h>#include <string.h>int main(void){ int num = 15 ; //26個字母  const char str[] = "abcdefghijklmnopqlstuvwxyz" ; //這個做法是將num這個十進制數通過取模轉換為字母并輸出,從程序看,即可知道是輸出p  char a = str[num%26] ; printf("a=%c/n",a); return 0 ; } 

當然我們也可以這么寫,用指針的形式來表示:

#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 ; } 

同樣的,結果也是和上面是一樣的,我們再對這種寫法進行簡化,如果初學者的基礎不扎實,也許一看就懵了。

#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替換成了一串字符串。正是因為有了這種做法,所以在寫進制轉換的時候,可以使用這樣的技巧來實現,當然,作為開發者,寫出可讀性高的代碼來說,我并不推崇這樣的寫法。

既然可以向上面這么寫,那也就可以向下面這么寫,輸出的結果是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 ; }

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奈曼旗| 伊春市| 渝中区| 宁强县| 潞城市| 赣州市| 义乌市| 凤冈县| 稷山县| 苍溪县| 贡嘎县| 丹东市| 平阳县| 静安区| 大埔县| 通山县| 东丰县| 馆陶县| 临汾市| 西贡区| 虎林市| 云安县| 黑山县| 许昌县| 堆龙德庆县| 祁门县| 伊宁市| 中西区| 新平| 永定县| 开封市| 龙江县| 延寿县| 合山市| 蒙自县| 屏南县| 潢川县| 老河口市| 保定市| 广德县| 大足县|