编辑器Wuyu对于事情的计划,永远不要认为别人想太多。是你想的太少了。(思考是习惯,不是负担)文章攻略今天给大家带来一个短代码,短小精悍,将字符串绑定到函数宏上。这样做的好处是代码调整起来比较方便,掌握之后就会明白什么是结构清晰。如果您在阅读过程中有任何问题,可以在后台留言。1代码原理解释利用switch和case的分散作用,宏作为分散条件,每个宏对应一个函数,宏和字符串绑定,通过比较字符串,函数对应的函数宏可以得到代码。这种代码的好处是可以在不改变宏代码的情况下,根据需要调整字符串与函数宏的对应关系。代码结构清晰,易于维护。2实现源码1)代码的所有说明都在注释里!代码可以理解为评级,但实际意义不大。请大家多多注意这段小代码的结构!#include#include//函数宏散点数#defineONE_STAR1#defineTWO_STAR2#defineTHREE_STAR3#defineFOUR_STAR4#defineFIVE_STAR5#defineZERO0//无效输入返回值/*定义查找对应表结构和查找表数组*/staticstructlookuptable{char*str;//指向Stringintcode;//对应宏函数code}tab[]={//string端口与函数指示符red对应的表格可以根据需要调整,如下1-5可以替换成任意字符串,只是在输入时(搜索时),{"1",ONE_STAR},{"2",TWO_STAR},{"3",THREE_STAR},{"4",FOUR_STAR},{"5",FIVE_STAR}};//搜索函数声明SearchFunc(char*s);intmain(intargc,char*argv[]){intscore=0;charstr[10]="\0";printf("Pleaseinputnumber1-5toevaluate:");gets(str);//根据星级进行处理,这里简单赋值,更多switch(SearchFunc(str)){caseONE_STAR:{score+=1;break;}caseTWO_STAR:{score+=2;break;}caseTHREE_STAR:{score+=3;break;}caseFOUR_STAR:{score+=4;break;}caseFIVE_STAR:{score+=5;break;}caseZERO://invalidcase,printinvalidpromotion{printf("\nYourinputisinvaild!\n");break;}}//输入一个有效的星号来打印if(SearchFunc(str)!=ZERO){printf("\nThescoreis:%d\n",score);}return0;}/*宏函数搜索函数*/SearchFunc(char*s){inti;for(i=0;i