我误解了win32(也许是libc)strtok()
发布时间:2020-12-14 05:53:36 所属栏目:Windows 来源:网络整理
导读:在某些CGI代码中,我需要编码很少发生的’’,’'和'‘字符.在编码功能中,如果输入字符串中没有这样的字符,我想立即离开.所以,在入门时,我尝试使用strtok()来找出: char *encode_amp_lt_gt ( char *in ) { ... if ( NULL == strtok( in,"" )) { return in; }
在某些CGI代码中,我需要编码很少发生的’&’,’<'和'>‘字符.在编码功能中,如果输入字符串中没有这样的字符,我想立即离开.所以,在入门时,我尝试使用strtok()来找出:
char * encode_amp_lt_gt ( char *in ) { ... if ( NULL == strtok( in,"&<>" )) { return in; } ... } 但是,即使没有任何分隔符,strtok()也会返回指向in的第一个字符的指针. 如果字符串中没有delim,我希望它返回NULL. 我的代码错了,还是我的期望错了?我不想调用strchr()三次只是为了消除通常的情况. 谢谢! 解决方法
你想要的功能是strpbrk,而不是strtok.更大的问题是 – 当你更换东西时,返回的字符串是如何被分配的,以及调用函数如何知道是否应该释放它?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |