读书人

请问一个获取字段再做相应动作的算法

发布时间: 2012-09-14 11:53:44 作者: rapoo

请教一个获取字段,再做相应动作的算法...(伪代码也行)
string GetStrA = bufferstr.substr(first_posx,len); //得到字符串

GetStrA是这样一个字符串:"X,B,F,K",以英文字母为编号,每个量以逗号分隔开,但不定的数量..

有两点情况:
1、如果没有","号(或者是单项)执行void DefaultStr()

2、
有A就执行
void strA();
有K...
void strK();

如此类推...


[解决办法]
这个很简单啊,你为什么要保存为string 啊?!不直接用char *buff;
不是很好么!?可以一个一个判断,满足哪个就用哪个啊!?
这样,你直接转换为char*,有个函数的,自己找找,然后一个一个字符判断就OK了!
',';'A';'K'等等
[解决办法]
似乎只能通过判断不同的值来执行不同的函数了

C/C++ code
if(GetStrA.indexOf(',')<0){DefaultStr();}else{if(GetStrA.indexOf("A") > -1){strA();}if(GetStrA.indexOf("K") > -1){strK();}....}
[解决办法]
上帖应改为
C/C++ code
if (-1==GetStaA.find(',')) DefaultStr();else {    if (0<=GetStaA.find('A')) strA();    if (0<=GetStaA.find('B')) strB();    if (0<=GetStaA.find('C')) strC();    if (0<=GetStaA.find('D')) strD();    if (0<=GetStaA.find('E')) strE();    if (0<=GetStaA.find('F')) strF();    if (0<=GetStaA.find('G')) strG();    if (0<=GetStaA.find('H')) strH();    if (0<=GetStaA.find('I')) strI();    if (0<=GetStaA.find('J')) strJ();    if (0<=GetStaA.find('K')) strK();    if (0<=GetStaA.find('L')) strL();    if (0<=GetStaA.find('M')) strM();    if (0<=GetStaA.find('N')) strN();    if (0<=GetStaA.find('O')) strO();    if (0<=GetStaA.find('P')) strP();    if (0<=GetStaA.find('Q')) strQ();    if (0<=GetStaA.find('R')) strR();    if (0<=GetStaA.find('S')) strS();    if (0<=GetStaA.find('T')) strT();    if (0<=GetStaA.find('U')) strU();    if (0<=GetStaA.find('V')) strV();    if (0<=GetStaA.find('W')) strW();    if (0<=GetStaA.find('X')) strX();    if (0<=GetStaA.find('Y')) strY();    if (0<=GetStaA.find('Z')) strZ();} 

读书人网 >C++

热点推荐