我有这个小问题,无法解决。
问题是我试图LOAD
通过要求用户插入它来加载函数中的所有四个字符串。一切似乎都很好,我没有收到任何编译器错误。但eaf
一直空着。我尝试了很多方法,甚至用 , , 替换scanf
,gets
但gets_s
没有fgets
任何改变。
#include <conio.h>
#include <stdio.h>
#include <string.h>
void LOAD(char eaf[], char initials[], char finals[], char symbols[]);
int COMPARE(char s[], char eaf[]);
int main()
{
char eaf[10],initials[1],finals[10],symbols[5];
LOAD(eaf, initials, finals, symbols);
return 0;
}
void LOAD(char eaf[], char initials[], char finals[], char symbols[])
{
printf("Insert states of the optimized AFD\n");
scanf( " %s", eaf);
printf("Insert AFD initial state\n");
do
{
scanf( " %s", initials);
} while (COMPARE(initials, eaf));
printf("Insert final state(s)\n");
do
{
scanf( " %s",finals);
} while (COMPARE(finals, eaf));
printf("Insert the language symbols\n");
scanf( " %s",symbols);
}
int COMPARE(char s[], char eaf[])
{
int i;
char *ptr;
for(i; i < strlen(s); i++){
printf("%d\n", i);
while(ptr==NULL){
ptr = strchr(eaf, *s);
}
}
if (ptr == NULL) return 1;
else return 0;
}
我究竟做错了什么?这只是更大程序的一小部分,但其余部分无用,因为eaf
是空的。我认为问题出在 using scanf
,但正如我所说的其他功能也不起作用。我希望任何人都可以帮助我。谢谢
编辑:我检查过strlen(eaf)