【发布时间】:2011-02-08 16:45:39
【问题描述】:
我正在为一个类编写 C 代码。这个类要求我们的代码在学校服务器上编译运行,这是一台 sparc solaris 机器。我正在运行 Linux x64。
我要解析这一行(这不是实际代码,而是输入到我的程序中):
while ( cond1 ){
我需要将“while”和“cond1”捕获到单独的字符串中。我一直在使用strtok() 来执行此操作。在 Linux 中,以下几行:
char *cond = NULL;
cond = (char *)malloc(sizeof(char));
memset(cond, 0, sizeof(char));
strcpy(cond, strtok(NULL, ": \t\(){")); //already got the "while" out of the line
将正确捕获字符串“cond1”。但是,在 solaris 机器上运行它会得到字符串“cone1”。
请注意,在我的程序中的许多其他情况下,字符串被正确复制。 (例如,“while”)被正确捕获。
有人知道这里发生了什么吗?
【问题讨论】: