c++ - 递归地仅返回字符串中的特定字符 C++
问题描述
我目前正在学习 C++,但在递归时遇到了麻烦。手头的问题是遍历一个字符串并只返回其中的运算符:即'(' 或'[' 或'{' 或')' 或'}' 或']'。不幸的是,我的程序一直返回空字符串。任何帮助,将不胜感激。
#include <string>
string operatorsOnly(string s) {
if (s.length() == 0) {
return "";
}
if (s[0] != '(' or '[' or '{' or ')' or '}' or ']') {
return operatorsOnly(s.substr(1, s.length() - 1));
}
else {
return s[0] + operatorsOnly(s.substr(1, s.length() - 1));
}
}
解决方案
您无法使用该语法将变量与多个值进行比较。你需要做:
if (s[0] != '(' or s[0] != '[' or s[0] != '{' or s[0] != ')' or s[0] != '}' or s[0] != ']') {
// ...
推荐阅读
- python - 如何在自身内部创建一个函数循环?树莓派 4 和 Python
- python - 使用 Python 发送 Outlook 电子邮件时如何编写消息?
- bash - 致命:使用 cron 作业推送到 git 时无法读取用户名
- python - 从数组中动态设置 QTableWidget 的内容
- laravel - 从 Ionic 登录记住我
- asp.net-mvc - 如何修复 System.FormatException:“输入字符串的格式不正确。”
- vb.net - 无法修复错误“无法加载 System.Net.Http,版本 = 4.2.0.0”
- c# - 使用命令行如何在 ASP.NET 中首先从 DB 搭建脚手架 - 而不是 ASP.NET Core MVC?
- php - 如何在 Laravel 的 UserController 中使用 2 个更新功能
- html - 如何使我的家谱树响应?