void output_1(char *ch,char *leter,char *character,int length) { int i; for(i = 0; i < length - 1; i++) { if(leter[i] != '0') { printf("%c ",leter[i]); } else if(character[i] != 0) { if(ch[i] == '!' ||ch[i] == '^' ||ch[i] == '('||ch[i] == ')'||ch[i] == ' ') { if(ch[i] != ' ') {printf("%c ",character[i]);} } else if(ch[i] == '|' || ch[i] == '-') { printf("%c%c ",character[i],character[i+1]); i++; } else if(ch[i] == '<') { printf("%c%c%c ",character[i],character[i+1],character[i+2]); i+=2; } } } if(leter[i] != '0') printf("%c",leter[i]); else printf(")"); printf("\n"); }翻译
时间: 2024-02-14 15:35:23 浏览: 113
leterA(3).rar_Begin Here
这是一个名为 output_1() 的函数,它接受四个参数,分别是一个字符数组 ch、一个字符数组 leter、一个字符数组 character 和一个整型变量 length。该函数用于输出逻辑表达式中的变量名和操作符。
在函数中,程序使用 for 循环遍历字符串 ch 中的每个字符。对于每个字符,程序首先检查其是否在字符数组 leter 中出现过,如果出现过且不为 '0',则使用 printf() 函数输出该字符和一个空格。
如果该字符未在字符数组 leter 中出现过,程序再检查其是否在字符数组 character 中出现过。如果出现过且不为 0,程序将根据其前面的字符来确定该字符的类型,并使用 printf() 函数输出该字符及其后面的一个或两个字符。具体来说:
- 如果前面的字符是 !、^、(、) 或空格,则该字符为变量名,直接输出。
- 如果前面的字符是 | 或 -,则该字符为一个双字符的操作符,输出该字符和其后面的一个字符,并将循环变量 i 加 1。
- 如果前面的字符是 <,则该字符为一个三字符的操作符,输出该字符和其后面的两个字符,并将循环变量 i 加 2。
循环结束后,程序再判断最后一个字符是否在字符数组 leter 中出现过,如果出现过且不为 '0',则使用 printf() 函数输出该字符,否则输出一个 ')' 符号。最后,程序输出一个换行符。
阅读全文