我试图解析表单的字符串:
structure: something 2 3 4 5 6 7 10 242 12
我想要的是将整数值打印到文件中。现在,我可以使用strtok并基于空格分割字符串然后strcmp"结构:"和"某事"单词而不是将它们打印到文件中。但这些可以是任何单词,所以这只适用于这种特定情况。但它总是以
的形式出现<word1> <word2> 1 2 3 4 n
我尝试按照使用strchr将指针移动到2前面然后在后续字符串上使用strtok来做某事,这样我就只能拆分整数。我做了一些事情:
char number[256];
char *pch;
// using strchr to navigate to second space in line,
// then use strtok to split numbers
pch = strchr(buf, ' ');
pch = strchr(pch + 1, ' ');
pch = strtok(buf, " ");
while (pch != NULL) {
fprintf(outputFile, "%s\n", pch);
pch = strtok(NULL, " ");
}
显然,这不起作用,只是打印出一行中的所有内容。增加strchr的尝试也可能是错误的,但我认为它会在它找到的第一个空格字符上增加,然后找到第二个空格(2之前的空格)。然后,我想从指针开始并在那之后继续讨论所有内容(尽管在这种情况下我只是重新分配指针)。
所以有可能在&#34;&#34;&#34;之后得到一串所有东西。然后运行strtok?
答案 0 :(得分:3)
在
中使用pch
代替buf
pch = strtok(buf, " ");
所以将该行更新为
pch = strtok(pch, " ");