仅递归返回字符串中的特定字符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)); } } #包括 仅限字符串运算符(字符串s){ 如果(s.length()==0){ 返回“”; } 如果(s[0]!='('或'['或'{'或''')'或'}'或']')){ 仅返回运算符(s.substr(1,s.length()-1)); } 否则{ 返回s[0]+运算符only(s.substr(1,s.length()-1)); } }
您无法使用该语法将一个变量与多个值进行比较。您需要执行以下操作:仅递归返回字符串中的特定字符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)); } } #包括 仅限字符串运算符(字符串s){ 如果(s.length()==0){ 返回“”; } 如果(s[0]!='('或'['或'{'或''')'或'}'或']')){ 仅返回运算符(s.substr(1,s.length()-1)); } 否则{ 返回s[0]+运算符only(s.substr(1,s.length()-1)); } },c++,string,recursion,C++,String,Recursion,您无法使用该语法将一个变量与多个值进行比较。您需要执行以下操作: if (s[0] != '(' or s[0] != '[' or s[0] != '{' or s[0] != ')' or s[0] != '}' or s[0] != ']') { // ... 这回答了你的问题吗?此外,尽管使用或可以“工作”,但您确实应该使用|。
if (s[0] != '(' or s[0] != '[' or s[0] != '{' or s[0] != ')' or s[0] != '}' or s[0] != ']') {
// ...
这回答了你的问题吗?此外,尽管使用
或可以“工作”,但您确实应该使用|
。