请教一个获取字段,再做相应动作的算法...(伪代码也行)
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'等等
[解决办法]
似乎只能通过判断不同的值来执行不同的函数了
if(GetStrA.indexOf(',')<0){DefaultStr();}else{if(GetStrA.indexOf("A") > -1){strA();}if(GetStrA.indexOf("K") > -1){strK();}....}
[解决办法]
上帖应改为
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();}