gpt4 book ai didi

找到字符时切割字符串

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

我编写了一个函数,如果找到“o”,则将字符串“hello world”剪切为“hell”。

我一直遇到段错误。我不知道错误可能在哪里。有人能帮忙吗?提前谢谢你。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* cutString(char* str, char del){

char *newstring =(char*) str;
malloc(sizeof(char)*strlen(str));
int i= 0;

for(; newstring[i]!='\0'&&newstring[i]!=del;i++);

if(i==strlen(newstring))
printf("not found");
else
newstring[i]='\0';

return newstring;
}


int main(){



cutString("Hello World",'o');

return 0;

}

最佳答案

您的代码有两个主要问题:

  1. char *newstring =(char*) str 使 newstring 指向旧的 str。由于您传递了一个文字字符串(只读),您将有未定义的行为试图修改它。

  2. malloc(sizeof(char)*strlen(str)); 是内存泄漏。并且不为终结符分配空间。

崩溃可能是因为第一点,当您尝试修改只读字符串文字时。

关于找到字符时切割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54075371/

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