国产探花免费观看_亚洲丰满少妇自慰呻吟_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武林網的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中牟县| 开江县| 高州市| 江山市| 桓仁| 永清县| 呼伦贝尔市| 西城区| 元朗区| 清丰县| 垦利县| 盐城市| 新和县| 内黄县| 宜州市| 炎陵县| 沁源县| 常熟市| 乐亭县| 成安县| 民勤县| 安化县| 木兰县| 靖州| 海淀区| 株洲市| 德州市| 高密市| 潞城市| 郧西县| 泽库县| 郯城县| 朝阳市| 固阳县| 辽宁省| 武胜县| 高淳县| 德惠市| 拜城县| 永兴县| 定西市|