strstr strtok中使用的指针

时间:2012-08-16 16:11:53

标签: c pointers strtok strstr

我有一个字符串,我使用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);


                    }
                }
            }

1 个答案:

答案 0 :(得分:0)

pch2=strtok(NULL," ");
pch3=strstr(pch2,key1);

在致电pch2 != NULL之前,您不会检查strstr。它毕竟是必然发生的,因为它是你摆脱这个循环的唯一方式。

怎么样:

while((pch2 = strtok(NULL," "))) {