gpt4 book ai didi

c - 为什么这段代码会出现段错误?

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

我正在尝试编写一个从字符串 src 中删除 char c 的函数,但当我尝试运行它时出现段错误。这是函数。

void removeChar(char *src, char c){
int i, j = 0;
int size;
char ch1;
char str1[100];

size = strlen(src);

for (i = 0; i < size; i++){
if (src[i] != c){
ch1 = src[i];
str1[j] = ch1;
j++;
}
}
str1[j] = '\0';
src = str1;
}

这是我调用它的主要功能。

int main(int argc, char **argv){
char *str = "Hello, world!\0";
printf("%s\n", removeChar(str, 'l'));
}

最佳答案

此函数 removeChar(str, 'l') 的返回类型为 void 而非 char 数组,您将其传递给

printf("%s\n", removeChar(str, 'l'));

所以这里 %s 可能会给你段错误。

关于c - 为什么这段代码会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26966551/

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