有人可以向我解释为什么这段代码经常崩溃。在我看来一切都很好。
#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;
}