strtok () в c с нуля - PullRequest
       8

strtok () в c с нуля

0 голосов
/ 31 мая 2018

Я написал этот код, но он все равно выдает ошибку Segmentation Fault (core dumped), когда я пытаюсь сохранить входные данные в разделитель.

- РЕДАКТИРОВАТЬ - Теперь я смог найти всеразделители, но мой код не может разделить строку разделителями на токены.

Этот код пытается скопировать функцию strtok() в C.

    #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] ничего не хранится.Помощь

...