从一串由指定分割符分隔的串中查找子串

用strtok之前以为用strstr不用循环,结果经测试还是需要有循环,根据80-20原则,所以两种方法的性能未经测试对比,就选了strtok可读性较强的方法,strstr的方法抛之可惜,放到此处保留一下。

 

 

bool FindToken(char* token,char* blacklist,char delimiter) { int tokenLen=strlen(token); int blacklistLen=strlen(blacklist); char* idx=strstr(blacklist,token); while (idx) { if(idx==blacklist) { if(tokenLen<=blacklistLen && (blacklist[tokenLen]==delimiter || blacklist[tokenLen]==0)) { return true; break; } } else { if((idx-blacklist>0) && (idx-blacklist+tokenLen<=blacklistLen) && (idx[-1]==delimiter) && (blacklist[idx-blacklist+tokenLen]==delimiter || blacklist[idx-blacklist+tokenLen]==0)) { return true; break; } } idx=strstr(idx+tokenLen,token); } return false; }

你可能感兴趣的:(从一串由指定分割符分隔的串中查找子串)