可以在此处找到该任务:http://www.talentbuddy.co/challenge/51846c184af0110af3822c32
关于此任务的我的计划如下:
#include <stdio.h>
#include<string.h>
void tokenize_query(char *query, char *punctuation) {
int i,j,ok=1,k,t;
char x[1000];
for(i=0;i<strlen(query);i++)
{
ok=1;
for(j=0;j<strlen(punctuation);j++)
{
if(query[i]==punctuation[j] || query[i]==' ')
ok=0;
}
if(ok!=0)
{
x[k]=query[i];
k++;
}
else {
for(t=0;t<k;t++)
{
printf("%c",x[t]);
}
k=0;
printf("\n");
}
}
}
答案 0 :(得分:5)
k
未在行
x[k]=query[i];
因此您可能会尝试在为x
分配的内存末尾之外编写。
最简单的解决方法是在声明时初始化k
int i,j,ok=1,k=0,t;
// ^^