この小さな問題があり、解決できません。問題は、ユーザーに挿入を求めること
で、関数に 4 つの文字列すべてをロードしようとしているということです。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
は空であるため役に立ちません。問題は の使用にあると思いましたが、前述しscanf
たように他の機能も同様に機能しませんでした。誰でも私を助けてくれることを願っています。ありがとう
編集:チェックしましたstrlen(eaf)