我已编写此代码,但在尝试将输入保存到分隔符时仍会出现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]
中没有存储任何内容。帮助