我正在解析一个文件,并一直在尝试使用该strtok()
函数来尝试帮助该过程。想象一下来自文本文件的这段摘录:
.text
main:
lw $a0, array
lw $a2, size
loop:
add $t2, $a0, $t2
sw $t0, 0($t2)
bne $t3, $zero, loop
li $v2, 8
syscall
.data
array: .word 0:10
message: .asciiz "Hello"
我目前正在逐行抓取与此类似的文件。我想知道我什么时候有一行结尾包含冒号,例如main:
, loop:
,array:
和message:
。
为此,我尝试使用这段代码,
char *token;
token = strtok(line, ":");
if (token != NULL)
{
//Do things with the token I grabbed
}
因此,当我strtok
只调用一次并将其保存为令牌时,我假设我仅在行中存在分隔符时才存储令牌的值。否则令牌将为 NULL。所以我想如果我检查令牌是否不为空,如果它通过了,我肯定会有一个令牌有一个“:”的行,因此我会抓住我最初想要的行。
当这段代码在我的程序中执行时,我会抓取每一行的第一个“单词”并将其保存为令牌。同样对于没有任何内容的行(空白行),它可以很好地节省气体,因为它不被视为 NULL。
这可能有点令人困惑,所以如果需要澄清,请告诉我。