gpt4 book ai didi

c - 在 C 中解析代码会带来额外的字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:20 26 4
gpt4 key购买 nike

我有以下字符串:

char *buffer = "begin\nvariables f,i,t\nf = 20\n:inicio\ni = i + 1\nprint i\nt = f - i\njnz t inicio\nend\n";

我想从那里解析出每一个句子,并且我开发了一个算法,在我到达“jnz t initio\n”之前它运行良好

如果我观看 (char *) buffer+65 我得到 "jnz t inicio\nend\n",所以,为了得到 "jnz t inicio\n"在那里,我做了以下事情:

void *output = malloc(13); // 13 being the length of jnz t inicio\n
memcpy(output,buffer+65,13); // to get the first 13 characters out of buffer+65

但是,当我观看 (char *) buffer 时,我得到了 "jnz t inicio\n,t\n",我得到了额外的 ",t\n”出于某种原因。

有什么想法吗?

如果您需要任何其他信息,请询问。谢谢!

最佳答案

C 字符串必须始终以 '\0' 字符结尾。所以缓冲区大小需要为14字节,并且需要在复制后终止字符串。

void *output = malloc(14);
memcpy(output,buffer+65,13);
output[13] = '\0';

关于c - 在 C 中解析代码会带来额外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24502012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com