我试图在c中重现POST /blog/post/_search
{
"query": {
"function_score": {
"functions": [
{
"gauss": {
"visitor.last_visit": {
"origin": "now/d",
"offset": "3d",
"scale": "4d",
"decay": 0.5
}
},
"filter": {
"nested": {
"path": "visitor",
"query": {
"term": {
"visitor.id": "1"
}
}
}
}
}
]
}
}
}
的行为,我的问题是该函数可以正常工作,但它会在最后添加额外的东西。
strcpy
当我运行它时,我得到以下内容。
char *ft_strcpy(char * dst, const char * src)
{
int i;
i = 0;
while (src[i] != '\0') {
dst[i] = src[i];
i++;
}
return dst;
}
答案 0 :(得分:2)
您没有复制nul终结符,因此printf
无法停止。
只需在循环后添加dst[i] = 0;
即可。
此外,您还没有为p
分配任何空间,因此您将获得未定义的行为。对于第一个测试,只需执行类似char p[100];
的操作,并确保z
永远不会> 99个字符长。最终你需要一个更好的解决方案,但这会让你开始。
答案 1 :(得分:0)
TENTEN,
将dest [i]设置为' \ 0'在结束循环之后。这是代码:
int main()
{
char src[100], dest[100], i;
printf("Enter string Src: ");
scanf("%s",src);
for(i=0; src[i]!='\0'; ++i)
{
dest[i]=src[i];
}
dest[i]='\0';
printf("String Dest: %s",dest);
return 0;
}