avatar
[转载] UNIX下的strtok# Unix - 噫吁兮,危乎高哉
W*e
1
大陆人不要到香港去是最好的回答。见到在内地牛气轰轰的香港人, 见一个打一个。
avatar
p*s
2
【 以下文字转载自 Programming 讨论区 】
【 原文由 phageous 所发表 】
要利用strtok来进行一些string的操作,结果却是segmentation fault,
code如下:
#include
#include
void main() {
char *str;
char *line="15:wildwood.eecs.umich.edu:018032:24.79 wildwood.eecs.umich.edu:018031:21.11 wildwood.eecs.umich.edu:018044:14.83 wildwood.eecs.umich.edu:018093:4.32";
str=strtok(line, ":");
printf("First token is %s\n", str);
while( (str=strtok(NULL, ":")) !=NULL)
printf("Next token is %s \n", str
avatar
c*r
3
Never use this function. It modifies the first arguments.
In your case, it is the const string. Disaster will happen,
you're lucky that it happens soon enough.

【在 p******s 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 【 原文由 phageous 所发表 】
: 要利用strtok来进行一些string的操作,结果却是segmentation fault,
: code如下:
: #include
: #include
: void main() {
: char *str;
: char *line="15:wildwood.eecs.umich.edu:018032:24.79 wildwood.eecs.umich.edu:018031:21.11 wildwood.eecs.umich.edu:018044:14.83 wildwood.eecs.umich.edu:018093:4.32";
: str=strtok(line, ":");

avatar
c*d
4
Please change the line:
char *line=.....
to
char line[1024]=....
to see what's the problem.

【 以下文字转载自 Programming 讨论区 】
【 原文由 phageous 所发表 】
要利用strtok来进行一些string的操作,结果却是segmentation fault,
code如下:
#include
#include
void main() {
char *str;
char *line="15:wildwood.eecs.umich.edu:018032:24.79 wildwood.eecs.umich.edu:018031:21.11 wildwood.eecs.umich.edu:018044:14.83 wildwood.eecs.umich.edu:018093:4.32";
str=strtok(line, ":");
printf("First token is %

【在 p******s 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 【 原文由 phageous 所发表 】
: 要利用strtok来进行一些string的操作,结果却是segmentation fault,
: code如下:
: #include
: #include
: void main() {
: char *str;
: char *line="15:wildwood.eecs.umich.edu:018032:24.79 wildwood.eecs.umich.edu:018031:21.11 wildwood.eecs.umich.edu:018044:14.83 wildwood.eecs.umich.edu:018093:4.32";
: str=strtok(line, ":");

avatar
c*t
5
好奇怪哦,编译 Hello World 时,得到如下 warning:
line 10: warning: improper pointer/integer combination: arg #2
运行后得到Segmentation fault.
删掉 core 后重新编译,居然一切正常,连warning也没有.

【在 p******s 的大作中提到】
: 【 以下文字转载自 Programming 讨论区 】
: 【 原文由 phageous 所发表 】
: 要利用strtok来进行一些string的操作,结果却是segmentation fault,
: code如下:
: #include
: #include
: void main() {
: char *str;
: char *line="15:wildwood.eecs.umich.edu:018032:24.79 wildwood.eecs.umich.edu:018031:21.11 wildwood.eecs.umich.edu:018044:14.83 wildwood.eecs.umich.edu:018093:4.32";
: str=strtok(line, ":");

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。