【发布时间】:2018-03-28 06:22:38
【问题描述】:
这是我的程序(用 C 编写,在 Omega 上编译和运行,如果有什么不同的话):
#include <stdio.h>
#include <string.h>
int main (void)
{
char string[] = " hello!how are you? I am fine.";
char *token = strtok(string,"!?.");
printf("Token points to '%c'.\n",*token);
return 0;
}
这是我期待的输出:
"Token points to '!'."
但我得到的输出是:
"Token points to ' '."
通过反复试验,我知道这是指字符串中的第一个字符:“hello!”之前的空格。
为什么我没有得到我期望的输出,我该如何解决?从我在这里读到的内容中,我确实明白 strtok 最好埋在沟里,但让我们假设(如果可能的话)我必须在这里使用它,并且我必须让它工作。
【问题讨论】: