Attention please! 字符串操作函数strtok的第一个参数

我们知道 函数strtok可以对字符串分割, 但有时会忽略它对它接受的第一个参数的要求。

函数原型是  char  *strtok (char *,  const char * )。虽然第一个参数是字符型指针,但也不要传递给它字符串常量。 因为strtok要对第一个参数修改,而字符串常量存放在常量区。比如,

char *p = "Today is a nice day";

strtok ( p, " “ ); /* 按照空格分隔 */

原来我这样写,编译后执行, 就会出现 无法执行的问题, 然后调试一下, 报错:Unhandled exception in *.exe: 0xC0000005: Access Violation

后来,我改成 char p [] = "Today is a nice day". 然后就好了。 因为此时p是存放在堆栈中,允许修改。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值