关于strtok的问题

toxyz 2015-10-09 04:30:19
为什么用指针不行(编译没问题,运行出错),用数组名就可以?
//为可行的方案

#include <stdio.h>
#include <string.h>

int main(void)
{
char * string = "hello,how,are,you?fine,thanks!";
char * token = "?";
// char string[] = "hello,how,are,you?fine,thanks!";
// char token[] = ",?!";

char * result = NULL;

// char *a = string;
// char *b = token;

result = strtok(string, token)
// result = strtok(a, b);
while(result != NULL){
puts(result);
result = strtok(NULL, token);
// result = strtok(NULL, b);
}
return 0;
}
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
toxyz 2015-10-09
  • 打赏
  • 举报
回复
明白了,谢谢
liunian_MEI 2015-10-09
  • 打赏
  • 举报
回复
char *string 与char string[] 的区别 当对这两者字符串处理时,前者字符串本身并不会变,变的只是指针,只有后者才可以改变字符串内容 而strtok()函数会改变原字符串, 所以用前者错误,后者正确
狂奔的码农 2015-10-09
  • 打赏
  • 举报
回复
指针也可以的,但是你要给它动态分配内存。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧