gpt4 book ai didi

c - 为什么这段 C 代码会崩溃?

转载 作者:行者123 更新时间:2023-11-30 15:10:37 25 4
gpt4 key购买 nike

有人可以向我解释一下为什么这段代码不断崩溃吗?我觉得一切都很好。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* find(char *haystack, char needle);
int main (){
char haystack[400], needle;
fgets(haystack,400,stdin);
scanf("%c", needle);
if(find(haystack,needle)) printf("%ld", find(haystack, needle) - haystack);
else printf(NULL);
return 0;
}
char* find(char *haystack, char needle) {
int lewski, cska;
lewski = strlen(haystack);
if(strchr(haystack,needle)){
cska = lewski-strlen(strchr(haystack,needle));
return &haystack[cska];
}
return NULL;
}

最佳答案

在您的代码中,您没有正确使用scanf。修改如下;

scanf("%c", &needle);

此外printf不会打印NULL修改如下;

printf("NULL");

希望这有帮助。

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

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