我有一个字符串,我使用strtok来解析它。
然后我想在strtok的指针上使用strstr,但我一直遇到一个seg错误。
对于为什么有任何想法?
char *pch,*pch1,*pch2,*pch3,
pch=strstr(line1,key);
if(pch!=NULL){
pch1=strstr(line1,key1);
pch2=strstr(line1,key2);
pch3=strstr(line1,key3);
if(pch1!=NULL && pch2!=NULL && pch3!=NULL){
printf("%s",line1);
sym++;
pch2=strtok(line1," ");
while(pch2!=NULL){
pch2=strtok(NULL," ");
pch3=strstr(pch2,key1);
printf("%s\n",pch3);
}
}
}
答案 0 :(得分:0)
pch2=strtok(NULL," "); pch3=strstr(pch2,key1);
在致电pch2 != NULL
之前,您不会检查strstr
。它毕竟是必然发生的,因为它是你摆脱这个循环的唯一方式。
怎么样:
while((pch2 = strtok(NULL," "))) {