成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

編程意識(shí)——將字符串與功能宏進(jìn)行綁定

開發(fā) 前端
利用switch和case的散轉(zhuǎn)功能,宏作為散轉(zhuǎn)條件,每一個(gè)宏對(duì)應(yīng)一種功能,將宏和字符串進(jìn)行綁定,這樣通過比較字符串的方式,就能獲得對(duì)應(yīng)宏的功能代碼。

[[379503]]

編 者 悟 語

對(duì)于事的打算,永遠(yuǎn)都不要認(rèn)為別人考慮的過多,經(jīng)事的你可能才會(huì)發(fā)現(xiàn),不是別人想得太多,而是你想得太少。(思考是一種習(xí)慣,而不是一種負(fù)擔(dān))

文 章 導(dǎo) 讀

今天給小伙伴們帶來一段簡(jiǎn)短的代碼,簡(jiǎn)短但精致,將字符串與功能宏進(jìn)行綁定,這樣做的好處是調(diào)整代碼比較方便,掌握后你就會(huì)明白什么才是結(jié)構(gòu)清晰,閱讀過程中如果有什么問題,可以后臺(tái)留言哈。

1 代碼原理說明

利用switch和case的散轉(zhuǎn)功能,宏作為散轉(zhuǎn)條件,每一個(gè)宏對(duì)應(yīng)一種功能,將宏和字符串進(jìn)行綁定,這樣通過比較字符串的方式,就能獲得對(duì)應(yīng)宏的功能代碼。

此代碼的好處是宏代碼不用變的情況下,字符串和功能宏的對(duì)應(yīng)是可以根據(jù)需要進(jìn)行隨意調(diào)整的。

代碼結(jié)構(gòu)清晰,易于維護(hù)。

2 實(shí)現(xiàn)源碼

1)實(shí)現(xiàn)代碼

一切說明,盡在注釋中啦!代碼可以理解為等級(jí)評(píng)定吧,實(shí)際意義不大,大家多關(guān)注這個(gè)小代碼的結(jié)構(gòu)吧!

  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3.  
  4. // 功能宏散轉(zhuǎn)編號(hào)  
  5. #define ONE_STAR    1 
  6. #define TWO_STAR    2 
  7. #define THREE_STAR  3 
  8. #define FOUR_STAR   4 
  9. #define FIVE_STAR   5 
  10.  
  11. #define ZERO        0    // 無效輸入返回值  
  12.  
  13.  
  14. /* 定義查找對(duì)應(yīng)表結(jié)構(gòu)及查找表數(shù)組 */ 
  15. static struct lookuptable  
  16.      char *str;   // 指向字符串  
  17.      int code;    // 對(duì)應(yīng)宏功能碼  
  18. }tab[]= {      
  19.      // 字符串口與功能指示紅的對(duì)應(yīng)表,可以根據(jù)需要隨意調(diào)整,下面的1-5可以換為任意字符串,只是輸入時(shí)(查找時(shí))也要一一對(duì)應(yīng)上  
  20.      {"1", ONE_STAR},  
  21.      {"2", TWO_STAR}, 
  22.      {"3", THREE_STAR}, 
  23.      {"4", FOUR_STAR}, 
  24.      {"5", FIVE_STAR} 
  25. };  
  26.  
  27. // 查找函數(shù)聲明 
  28. SearchFunc(char *s); 
  29.  
  30.  
  31. int main(int argc, char *argv[])  
  32.   
  33.       int score = 0; 
  34.       char str[10] = "\0";  
  35.   
  36.   
  37.       printf("Please input number 1-5 to evaluate: "); 
  38.   
  39.       gets(str); 
  40.   
  41.       // 根據(jù)星級(jí)進(jìn)行處理,這里就是簡(jiǎn)單的賦值,實(shí)際應(yīng)用中可以根據(jù)需要更多  
  42.       switch(SearchFunc(str)) 
  43.       { 
  44.            case ONE_STAR: 
  45.            { 
  46.                 score += 1; 
  47.                 break; 
  48.            }  
  49.       
  50.            case TWO_STAR: 
  51.            { 
  52.                 score += 2; 
  53.                 break; 
  54.            } 
  55.    
  56.    
  57.           case THREE_STAR: 
  58.           { 
  59.                score += 3; 
  60.                break; 
  61.           } 
  62.    
  63.           case FOUR_STAR: 
  64.           { 
  65.                score += 4; 
  66.                break; 
  67.           } 
  68.    
  69.           case FIVE_STAR: 
  70.           { 
  71.                score += 5; 
  72.                break; 
  73.           } 
  74.   
  75.       
  76.           case ZERO:  // 無效的情況,打印無效提升  
  77.           { 
  78.                printf("\nYour input is invaild!\n"); 
  79.                break; 
  80.           } 
  81.    
  82.       }   
  83.   
  84.      // 輸入有效才進(jìn)行星級(jí)打印  
  85.      if(SearchFunc(str)!=ZERO) 
  86.      { 
  87.           printf("\nThe score is: %d\n",score); 
  88.      } 
  89.   
  90.      return 0; 
  91.  
  92.  
  93. /* 宏功能查找函數(shù) */   
  94. SearchFunc(char *s) 
  95.       int i;  
  96.   
  97.       for(i=0; i< sizeof(tab)/sizeof(tab[0]); i++) 
  98.       { 
  99.             if(strcmp(tab[i].str, s)==0) 
  100.             { 
  101.                   return tab[i].code; 
  102.             } 
  103.       } 
  104.   
  105.       return ZERO;     // 輸入不再范圍內(nèi)標(biāo)記為0  

2)運(yùn)行結(jié)果

① 輸入值在有效范圍1-5時(shí),結(jié)果如下:

② 輸入值不在有效范圍內(nèi)時(shí),結(jié)果如下:

本文轉(zhuǎn)載自微信公眾號(hào)「嵌入式雜牌軍」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系嵌入式雜牌軍公眾號(hào)。

 

 

責(zé)任編輯:武曉燕 來源: 嵌入式雜牌軍
相關(guān)推薦

2009-12-01 14:14:36

PHP數(shù)組按字符串長(zhǎng)短

2009-08-07 14:15:21

C#字符串分割

2010-04-27 12:19:57

Unix字符串

2010-02-01 16:22:36

Python字符串操作

2010-03-12 17:35:00

Python字符串

2023-11-06 09:32:52

Java實(shí)踐

2021-09-17 14:13:28

JavaScript編程字符串

2010-03-12 18:29:56

Python字符串替換

2022-11-11 10:23:04

2016-12-09 15:01:08

蘋果激活鎖字符串

2010-03-16 17:41:14

Python字符串

2013-06-24 15:16:29

Java字符串拼接

2024-10-30 16:49:00

Python字符串

2024-02-19 15:38:08

JsonPython字符串

2009-11-25 09:13:41

PHP數(shù)組轉(zhuǎn)字符串PHP字符串轉(zhuǎn)數(shù)組

2023-12-11 07:33:05

Go語言字符技巧

2010-11-26 13:40:58

MySQL空字符串

2010-03-31 19:15:25

Oracle函數(shù)

2010-01-05 16:48:16

JSON 字符串

2023-12-11 15:18:03

C++字符串Unicode
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产一级免费视频 | 国产精品污www一区二区三区 | 二区不卡 | 黑人巨大精品欧美一区二区一视频 | 成人日韩 | 春色av| 日本黄色大片免费 | 亚洲精品在线免费观看视频 | 精品国产一区二区国模嫣然 | 精品福利视频一区二区三区 | 成人欧美一区二区三区在线观看 | 成人亚洲综合 | 日韩欧美在线播放 | 欧美成人在线网站 | 久久久久久久综合色一本 | 午夜不卡福利视频 | 天天操夜夜看 | 欧美aaaaa | 午夜精品久久久久久久星辰影院 | 一级毛片在线播放 | 日韩一三区 | 国产欧美一区二区三区日本久久久 | 成人久久久 | 日日夜夜精品视频 | a级免费视频| 日韩不卡一区二区三区 | 亚洲成人网在线 | 国产精品久久 | 黑人巨大精品欧美一区二区一视频 | 国产不卡一 | 久久机热 | 久久精品一区 | 国产美女精品视频免费观看 | 久久中文字幕一区 | 99九九久久 | 久久精品国产一区二区电影 | 国产精品大片 | 婷婷色国产偷v国产偷v小说 | 亚洲免费精品 | 精品久久一区 | 99热精品在线 |