Я написал этот код, но он все равно выдает ошибку 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]
ничего не хранится.Помощь