编译原理_实验报告(18)

2021-01-28 20:40

编译原理实验

if('\0' != Vt[n])

return n;

return -1;

}

/*输出Vn或Vt的内容*/

void ShowChArray(char* collect)

{

int k = 0;

while('\0' != collect[k])

{

printf(" %c ", collect[k++]);

}

printf("\n");

}

/*输入非终结符*/

void InputVn()

{

int inErr = 1;

int n,k;

char ch;

while(inErr)

{

printf("\n请输入所有的非终结符,注意:");

printf("请将开始符放在第一位,并以#号结束:\n");

ch = ' ';

n = 0;

/*初始化数组*/

while(n < MaxVnNum)

{

Vn[n++] = '\0';

}

n = 0;

while(('#' != ch) && (n < MaxVnNum)) {

if(' ' != ch && '\n' != ch && -1 == IndexCh(ch))

{

Vn[n++] = ch;

vnNum++;

}

ch = getchar();

}

Vn[n] = '#'; /*以“#”标志结束用于判断长度是否合法*/

k = n; /*k用于记录n以便改Vn[n]='\0'*/

if('#' != ch)

{

if( '#' != (ch = getchar()))

{

while('#' != (ch = getchar()))

;

printf("\n符号数目超过限制!\n");

inErr = 1;

continue;

}

}

/*正确性确认,正确则,执行下下面,否则重新输入*/

Vn[k] = '\0';

ShowChArray(Vn);

ch = ' ';

while('y' != ch && 'n' != ch)

{

if('\n' != ch)

{

printf("输入正确确认?(y/n):");

}

scanf("%c", &ch);

}

if('n' == ch)

{

printf("录入错误重新输入!\n");

inErr = 1;

}

else

{

inErr = 0;

}

}

}

/*输入终结符*/

void InputVt()

{

int inErr = 1;

int n,k;

char ch;

while(inErr)

{

printf("\n请输入所有的终结符,注意:");

printf("以#号结束:\n");

ch = ' ';

n = 0;

/*初始化数组*/

while(n < MaxVtNum)

{

Vt[n++] = '\0';

}

n = 0;

18


编译原理_实验报告(18).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:肉牛饲养管理技术

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: