strtok 是一个用来将字符串进行分割的方法,这个方法的核心是p的使用,何以见得呢,我们仔细看一下:
首先我们定义一个字符串(“我,好:帅”)
显然,经过:和,可以将这个字符串分割成三个部分,所以我们使用一个char*p[3];
我们使用strtok将字符串进行了切割因此我们的定义是:
我们使用了p[i] = strtok(str,",:");
也就是我们将str通过,和:进行了分割
这里有两个很重要的概念需要我们理解
p是一个指针,所以它指向的是我们现在到哪里看到了我们的第i个,或者是; 而str则会被这个指针进行分割,我们完整的操作是
while(p!=NULL)
{
i++;
p[i] = strtok(NULL,", ;");
}
for(j = 0;j<i;j++)
为什么这里使用NULL就可以了?
因为strtok这个函数很特殊,他可以知道一点,那就是一旦你已经切割过了,那么经过后续操作之后我们的p【i】会就这上一次切割过的结果再继续切割下去了。
事实上strtok的操作的一个核心就是,他会把自己见到的所谓的,;等分隔符变成\0,这样下次见面的时候我们就是敌人了(笑),是后边就不见了。
同时p[i] 存放的是目前为止已经有的str的分割的每一个部分了