我正在为一个类编写 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”)被正确捕获。
有谁知道这里发生了什么?