bool check_zhongzhui(){ cout<<"\n**************中缀式转后缀式**************\n"<<endl; cout<<"请输入中缀表达式:"<<endl; cin>>expression; if(!expression[0]) printf("\n"); int len=strlen(expression); shanchu_kong(len); len = strlen(expression); //重新得到表达式的长度 Init_array(); if(check_biaodashi(0,len)){ main4(); return true; } else{ printf("中缀式错误!\n"); return false; } }
时间: 2023-08-23 15:05:33 浏览: 42
这段程序代码使用了C++语言,主要实现的功能是将中缀表达式转换为后缀表达式。其中包含了如下几个步骤:
1. 读入中缀表达式。
2. 去掉中缀表达式中的空格。
3. 初始化一个数组,用于存放后缀表达式。
4. 调用check_biaodashi函数,对中缀表达式进行检查,判断表达式是否合法。
5. 如果中缀表达式合法,则调用main4函数,将中缀表达式转换为后缀表达式。
6. 如果中缀表达式不合法,则输出错误信息。
最终,该程序返回一个布尔值,表示中缀表达式是否合法,并且转换为后缀表达式成功。
相关问题
QHash<IMediaPlayer*, bool> 怎么判断可用
QHash<IMediaPlayer*, bool> 是一个哈希表,其键为 IMediaPlayer* 指针类型,值为 bool 类型。如果要判断 IMediaPlayer* 是否可用,可以通过以下步骤实现:
1. 调用 contains 函数来判断哈希表中是否包含该键值对,示例代码如下:
```
IMediaPlayer* player = ...; // 获取 IMediaPlayer* 指针
if (hash.contains(player)) {
// 哈希表中包含该键值对
} else {
// 哈希表中不包含该键值对
}
```
2. 如果哈希表中包含该键值对,再通过 value 函数来获取对应的 bool 值,示例代码如下:
```
bool available = hash.value(player);
if (available) {
// IMediaPlayer* 可用
} else {
// IMediaPlayer* 不可用
}
```
注意:在使用哈希表时,需要保证 IMediaPlayer* 指针的比较和哈希函数实现正确,否则可能会导致无法正确判断键值对是否存在。
C++ bool转const char*
要将`bool`类型的值转换为`const char*`类型,您可以使用以下代码:
```c++
bool value = true; // 假设要转换的bool值为true
const char* str = value ? "true" : "false";
```
此代码将根据`value`的值设置`str`的值。如果`value`为`true`,则`str`将设置为指向字符串`"true"`的指针。如果`value`为`false`,则`str`将设置为指向字符串`"false"`的指针。
请注意,这种方法可能不是最安全的,因为`str`指向的字符串是静态的,可能被其他代码修改,从而导致未定义的行为。如果您需要更安全的解决方案,可以使用`std::string`类型,例如:
```c++
bool value = true; // 假设要转换的bool值为true
std::string str = value ? "true" : "false";
const char* cstr = str.c_str();
```
此代码将首先使用`std::string`类型创建一个字符串,然后使用`c_str()`函数将其转换为`const char*`类型。由于`std::string`类型会自动管理其分配的内存,因此这种方法更加安全。