1
在下面,我想不创建拷贝来分割字符串使用strok
strtok无法标记?
#include <string.h>
void func(char *c)
{
char *pch = strtok (c,"#");
while (pch != NULL)
{
pch = strtok (NULL, "#");
}
}
int main()
{
char c[] = "a#a\nb#b\n";
char *pch = strtok (c,"\n");
while (pch != NULL)
{
char *p = new char[strlen(pch)+1];
strcpy(p, pch);
func(p); //copy of pch
pch = strtok (NULL, "\n"); //fails to get pointer to 'b#b'
}
}
另一方面(也可能不相关)的笔记,我不明白你为什么混合使用C和C++代码。如果你使用STL字符串和增强库,你可能会让你的生活变得更轻松。 – 2011-01-30 12:24:33