溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么將字符串與功能宏進行綁定

發(fā)布時間:2021-10-19 15:48:31 來源:億速云 閱讀:97 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“怎么將字符串與功能宏進行綁定”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么將字符串與功能宏進行綁定”吧!

1 代碼原理說明

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

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

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

2 實現(xiàn)源碼

1)實現(xiàn)代碼

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

#include <stdio.h> #include <stdlib.h>  // 功能宏散轉(zhuǎn)編號  #define ONE_STAR    1 #define TWO_STAR    2 #define THREE_STAR  3 #define FOUR_STAR   4 #define FIVE_STAR   5  #define ZERO        0    // 無效輸入返回值    /* 定義查找對應表結(jié)構(gòu)及查找表數(shù)組 */ static struct lookuptable  {      char *str;   // 指向字符串       int code;    // 對應宏功能碼  }tab[]= {           // 字符串口與功能指示紅的對應表,可以根據(jù)需要隨意調(diào)整,下面的1-5可以換為任意字符串,只是輸入時(查找時)也要一一對應上       {"1", ONE_STAR},       {"2", TWO_STAR},      {"3", THREE_STAR},      {"4", FOUR_STAR},      {"5", FIVE_STAR} };   // 查找函數(shù)聲明 SearchFunc(char *s);   int main(int argc, char *argv[])  {         int score = 0;       char str[10] = "\0";            printf("Please input number 1-5 to evaluate: ");         gets(str);         // 根據(jù)星級進行處理,這里就是簡單的賦值,實際應用中可以根據(jù)需要更多        switch(SearchFunc(str))       {            case ONE_STAR:            {                 score += 1;                 break;            }                   case TWO_STAR:            {                 score += 2;                 break;            }                 case THREE_STAR:           {                score += 3;                break;           }              case FOUR_STAR:           {                score += 4;                break;           }              case FIVE_STAR:           {                score += 5;                break;           }                   case ZERO:  // 無效的情況,打印無效提升            {                printf("\nYour input is invaild!\n");                break;           }          }          // 輸入有效才進行星級打印       if(SearchFunc(str)!=ZERO)      {           printf("\nThe score is: %d\n",score);      }        return 0; }   /* 宏功能查找函數(shù) */   SearchFunc(char *s) {       int i;          for(i=0; i< sizeof(tab)/sizeof(tab[0]); i++)       {             if(strcmp(tab[i].str, s)==0)             {                   return tab[i].code;             }       }         return ZERO;     // 輸入不再范圍內(nèi)標記為0  }

2)運行結(jié)果

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

怎么將字符串與功能宏進行綁定

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

怎么將字符串與功能宏進行綁定

到此,相信大家對“怎么將字符串與功能宏進行綁定”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI