嗨即时做字符串标记化类似于下面的例子。然而,在while循环中,例如,我将改变字母'a'为'hellow'。在分配myVar [i]之前尝试更改pch时,出现分段错误。我该如何去做呢?strtok字符串和修改令牌值
map <int, char*> myVar;
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
int i = 0;
while (pch != NULL)
{
printf ("%s\n",pch);
//modify token value
stringstream strStream;
strStream << "hello_world";
char newStr[7] = {0};
memcpy(newStr, strStream, 7);
myVar[i] = (char*)newStr;
pch = strtok (NULL, " ,.-");
i++;
}
你的意思是 “改变PCH”? – Gian
您发布的代码不是您遇到问题的代码(对令牌没有任何更改)。发布*不*工作的代码。 –
嘿抱歉,我已经编辑了上面的代码。 – nuttynibbles