strtok()从头开始

时间:2018-05-30 22:26:42

标签: c compiler-errors strtok

我已编写此代码,但在尝试将输入保存到分隔符时仍会出现Segmentation Fault (core dumped)错误。

- 编辑 - 我现在能够找到所有分隔符,但我的代码似乎无法通过分隔符将字符串分隔为标记。

此代码试图复制C中的strtok()函数。

    #include<stdio.h>


int strtok(char *str, char *delimiters, char tokens[500][127])
{
    int i,j,k,l, temp;

    l=0;
    for(i=0; str[i]; i++)
    {
      //printf("debug1");
        for(j=0; delimiters[j]; j++)
        {
          temp = 0;
            for(k=0; k < 127; k++)
            {

                if(str[i]==delimiters[j])
                {


                    if (temp != 1){
                      printf("New delimiter found\n");
                      tokens[l][k]='\0';
                      l++;
                    }
                    temp = 1;
                }

                else
                {
                    temp = 0;
                    tokens[l][k]=str[i];
                }
            }
        }
    }

    return l;


}

int main()
{
    char str[100], delimiters[100], tokens[500][127];
    //gets(str);
    scanf("%s", str);
    //gets(delimiters);
    scanf("%s", delimiters);
    int i;
    int x;
    x=strtok(str, delimiters,tokens);
    printf("%d\n",x);
    for(i=0; i<x; i++){
      printf("New token\n");
      printf("%s\n", tokens[i]);
    };
    return 0;
}

虽然我的代码找到了分隔符,但tokens[i]中没有存储任何内容。帮助

0 个答案:

没有答案