精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
char *jzseps = "abcdefghijklmnprstwxyz";//目标组字符的反集,意思是查没出现字符组成的字符串 BOOL JudgeHave(char *pfrom,char *pin) { char cback[MAXPINYINLEN]={0};//备份2个 char cuse[MAXPINYINLEN]={0}; strcpy(cback,pfrom);//拷贝字符串 strcpy(cuse,pfrom); char *token=strtok(cuse,pin);//用strtok来定位,如果定位到了,则cuse会改变,这样只要查到了一个jzseps里的字符,则新旧不一样, if(strcmp(cuse,cback)==0)//一样,则代表不包含反集,只有目标集oquv return FALSE; return TRUE; }
要点在strtok,这个函数本意是用于查找分隔符,根据一组字符来分隔字符串,得到切隔后的子字符串数组,它内部也是用查找来进行定位的。strtok本身支持多个字符的同时查找,这比自己写循环来实现判断字符串内全是一组字符外的字符组成要好些,并且strtok的底层的效率也肯定比C语言写的循环效率要更好。
strcmp是用于比较,如果2者字符完全一样,则返回0