【发布时间】:2023-03-17 02:11:01
【问题描述】:
我一直在尝试解决这个问题,并且我有一些解决方法,但我只是想检查一下我没有遗漏一些明显的东西。基本上,我有一系列遵循某些规则的命令。任何包含数字、ASCII 字母或某些符号的内容都是标记,而 、|、&&、; 等是分隔符。我需要能够分辨出我刚刚找到哪一个并将它们存储在一个数组中。
所以在一个while循环中我有
a = sscanf (cp, "%[0-9a-zA-Z!@:/-.,^+% ]", str);
我已将空格作为要查找的符号之一,因为我想不出任何其他方式。相反,在我得到这个词(加上可能的空格)之后,我打电话
delimiters[] = " ";
token = strtok(str, delimiters);
哪个应该删除空格,只留下一个标记(如果没有空格,它不会改变单词)。我只是好奇是否有办法用 sscanf 做类似的事情,因为我知道如果它们之间有空格,它已经分解了字符串,但是如果你再次调用它并且它看到空格,它只是不读取任何东西。
如果没有,那也没关系。整天都在烦我。
【问题讨论】: