有人可以向我解释一下为什么这段代码不断崩溃吗? 我觉得一切都很好。
#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/