关于strtok函数的一个问题请教大家
今天第一次用strtok函数,语句一开始为p=strtok(p," ");可会一直显示 cannot convert from 'char *' to 'char [100]',P是我一开始设置的char p[20]的数组,所以这个错误我明白原因,可是问题是我如果直接strtok(p," ");不把它重新赋给P,为什么程序就对了呢,难道是默认这种格式就是将字符串P空格前的部分重新覆盖掉之前的P字符串吗?
strtok()函数会分解源字符串,返回的是每一个分解项的起始指针,而定义char p[100]中标识p是不可变动的指针,不能改变p的值。p = strtok(p, " ")正是试图改变源指针p,那是不允许的。
记住:凡是使用数组形式定义的指针,都是常指针,本身是不允许改变的。你应该重新定义一个普通指针,指向这个数组,让后定义的指针移动。