我需要某人來調試我寫在下面的C++代碼行,以便它可以運行。它旨在拼寫檢查單詞「和」使用狀態到狀態轉換。調試有限狀態機拼寫檢查代碼
#include<iostream>
#include<string>
using namespace std;
string in_str;
int n;
void spell_check()
{
int i;
FILE *in_file;
while (!EOF(in_file))
{
fscanf(in_str);
n = strlen(in_str);
start(in_str,n);
}
}
void start()
{
char next_char;
int i = 0;
if (n == 0)
{
cout<<"This is an empty string";
exit();//do something here to terminate the program
}
else{
next_char = in_str[i];
if(next_char == 'a')
{
i++;
if(i >= n) error();
else state_A(i);
}
else error();
}
}
void state_A(int i)
{
if(in_str[i] == 'n')
{
i++;
if(i<n) state_AN(i);
else error();
}
else error();
}
void state_AN(int i)
{
if(in_str[i] == 'd')
{
if(i == n-1)
cout<<" Your keyword spelling is correct";
else
cout<<"Wrong keyword spelling";
}
}
int main()
{
spell_check();
return 0;
}
我個人會將啓動函數state_,state_start或state_0命名爲更加一致。 – NomeN 2010-03-13 02:07:48
Durell,當你發佈它時,我沒有看到問題。你遇到的實際問題是什麼? – 2010-03-13 02:54:59
@gf看到他的代碼(不)編譯,它正在解釋和解決簡單的編譯器警告... – NomeN 2010-03-13 03:19:08