gpt4 book ai didi

c - C 中的子字符串复制函数导致 seg

转载 作者:太空宇宙 更新时间:2023-11-04 04:09:41 24 4
gpt4 key购买 nike

我的函数 subStr 将字符串 (src) 的第“部分”部分复制到另一个字符串 (out) 上。尽管一切看起来都很好,但在使用该功能时我遇到了段错误......有人可以帮忙吗?我曾尝试使用 valgrind 来解决问题,但它不够具体,我无法找到解决方案。

从评论中提供的链接粘贴的代码

void subStr(char *src, char *out, int part) {           /*    subStr is a function that copies the "part"
substring of src to out and returns out's
address -- "parts" are strings seperated by spaces */
int i = 0, j = 0;

while(part > 1) {

while(*(src + i++) != ' ') {} // cycle through bytes of src

part--; // decrease "part" by one for every space found

} // here we have reached the string we want to copy

while((*(src + i) != ' ') || (*(src + i) != '\0')) // copy till next space or end of string
*(out + j++) = *(src + i++);

*(out + j) = '\0';

}

最佳答案

while(*(src + i++) != ' ') {}//循环遍历 src 的字节

//你需要检查你是否离开了*src;通过 (... && i < sizeof (src) && i < sizeof (out));或者通过 (... && ... != '\0')

关于c - C 中的子字符串复制函数导致 seg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58680474/

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