|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于strtok函数的一个问题请教大家
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
294
人关注过本帖
标题:
关于strtok函数的一个问题请教大家
只看楼主
加入收藏
chenyanx
等 级:
新手上路
帖 子:13
专家分:0
注 册:2012-10-9
结帖率:
50%
楼主
收藏
已结贴
√
问题点数:10 回复次数:5
关于strtok函数的一个问题请教大家
今天第一次用strtok函数,语句一开始为p=strtok(p," ");可会一直显示 cannot convert from 'char *' to 'char [100]',P是我一开始设置的char p[20]的数组,所以这个错误我明白原因,可是问题是我如果直接strtok(p," ");不把它重新赋给P,为什么程序就对了呢,难道是默认这种格式就是将字符串P空格前的部分重新覆盖掉之前的P字符串吗?
搜索更多相关主题的帖子:
cannot
convert
今天
2012-10-27 11:00
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
2
楼
收藏
得分:0
strtok()函数会分解源字符串,返回的是每一个分解项的起始指针,而定义char p[100]中标识p是不可变动的指针,不能改变p的值。p = strtok(p, " ")正是试图改变源指针p,那是不允许的。
记住:凡是使用数组形式定义的指针,都是常指针,本身是不允许改变的。你应该重新定义一个普通指针,指向这个数组,让后定义的指针移动。
授人以渔,不授人以鱼。
2012-10-27 11:23
举报帖子
使用道具
赠送鲜花
chenyanx
等 级:
新手上路
帖 子:13
专家分:0
注 册:2012-10-9
第
3
楼
收藏
得分:0
回复 2楼 TonyDeng
我在建立一个普通指针char*g后,令g=strtok(p," ");然后用strcmp()函数比较g与我之前去认定的字符串char q[20]="法向模数";时,执行后为什么会出现内存不能为'read'的那个对话框呢。。。。。
2012-10-27 11:55
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
4
楼
收藏
得分:0
你怎么写的?
授人以渔,不授人以鱼。
2012-10-27 11:57
举报帖子
使用道具
赠送鲜花
chenyanx
等 级:
新手上路
帖 子:13
专家分:0
注 册:2012-10-9
第
5
楼
收藏
得分:0
回复 4楼 TonyDeng
是这样的。。。。。
do
{
fgets(str,23,in);
char * g;
char p[100];
char * q= "啮合件号";
strcpy (p,str);
int length = strlen(p);
if (length > 0 && p[length-1] == '\n')
p[length-1] = '\0';
g=strtok(p," ");
r=strcmp(q,g);
}while (r!=0);
2012-10-27 20:40
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
6
楼
收藏
得分:10
错误在你if()那个操作中,自己输出一下各个字符串以及相关的下标是否越界。
授人以渔,不授人以鱼。
2012-10-27 23:00
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
关于strtok函数的一个问题请教大家
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.022073 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved