strtok()
正在崩溃。它在 main() 中起作用,但在 call 函数中不起作用。
请建议我。谢谢。
int checkNumberOfTokens (char* text, char* delimitChar) {
int numberOfTokens = 0;
char *t;
int i;
printf("Text: %s\n", text);
printf("delimitChar: %s\n", delimitChar);
t = strtok(text, delimitChar);
for (i=0; t != NULL; i++) {
printf("token %d is \"%s\"\n", i, t);
t = strtok(NULL, delimitChar);
}
numberOfTokens = i;
printf("Total number of tokens: %d\n", numberOfTokens);
return numberOfTokens;
}
int main()
char* transitionTable[] = {
"NA, NA, NA, NA, NA, NA",
"defaultStart, elseOther, 1, 2, 6, NA",
};
printf("%s \n", transitionTable[1]);
char delimitChar[] = ",";
checkNumberOfTokens (transitionTable[1], delimitChar);
最佳答案
strtok
输入字符串必须可写,因为 strtok
会修改输入字符串。但是您传递的是字符串文字,并且字符串文字是不可修改的。
请参阅有关字符串文字的 c-faq:
关于c - strtok 在调用函数中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011295/