strtok函数第一个参数问题

strtok函数第一个参数要求是指针?是否需要将:charip[50]="192..168.0...8...";a=strtok(ip,f);换为charip[50]="... strtok函数第一个参数要求是指针?是否需要将:
char ip[50] = "192..168.0...8...";
a = strtok(ip, f);
换为
char ip[50] = "192..168.0...8...";
char *p = ip;
a = strtok(p, f);?
谢谢!
展开
 我来答
捡到的幸福
2010-08-19 · TA获得超过1282个赞
知道小有建树答主
回答量:568
采纳率:0%
帮助的人:351万
展开全部
不需要
因为ip本来也是指针了。
这个函数处理是这样:
第一次调用时第一参数一定要,因为第一次调用时它是将第一个参数指向的字符串中的分隔符改成'\0',并记录下分隔符号的位置。所以他是个破坏原数据的函数。
以后的调用他就根据第一次记录下来的分隔符号的位置来找字符串。所以第二次及以后就不能输入第一个参数了,一定要用NULL。因为他是以这个参数来判断是否把分隔改成'\0'的。
fantacywall
2010-08-19 · TA获得超过333个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:272万
展开全部
原型:extern char *strtok(char *s, char *delim);

用法:#include <string.h>

功能:分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串。

说明:首次调用时,s必须指向要分解的字符串,随后调用要把s设成NULL。
strtok在s中查找包含在delim中的字符并用NULL('\0')来替换,直到找遍整个字符串。
返回指向下一个标记串。当没有标记串时则返回空字符NULL。

不需要换,但是有个问题你要注意!
ip的尾部必须以'\0'结束,不然当你循环处理的时候,strok会越界的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4fee1d0
2010-08-19 · TA获得超过340个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:276万
展开全部
不需要直接用就可以了,strtok会把串中左右的f替换成'\0'。也就是说使用函数strtok之后,ip中的数据会被改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhangyafei3020
2010-08-19 · TA获得超过418个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:0
展开全部
char *strtok(char *s, char *delim);
感觉不需要
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式