如何将从第 2 个字符开始的字符串作为函数中的参数传递以进行递归,并约束数据 tiee 是函数中的字符串?

how to pass a string from 2nd character onwards as parameter in the function for recursion with constraint that data tye is String in function?

本文关键字:字符串 函数 递归 约束 tiee 数据 参数传递 开始 字符      更新时间:2023-10-16
void someFunction(node * root, string s)
{  
//some base condition;
node *tem;
for(char i= 0;s[i]!='';i++){
if(s[i]=='1'){
tem=root->right;
someFunction(root->right,s+1);   
}
else{
tem = root->left;
decode_huff(tem, s+1)
}
tem=root;
}
}

这显示错误。

您的函数按值获取std::string,因此每次调用该函数时,都必须为其创建一个新string。 要从另一std::string的一部分创建新std::string,请使用std::string::substr()方法。

此外,std::string不是以 null 结尾的字符串,则应根据其size()而不是其字符进行循环:

void someFunction(node * root, string s)
{  
//some base condition;
node *tem;
for(size_t i = 0; i < s.size(); i++){
if (s[i] == '1'){
tem = root->right;
someFunction(root->right, s.substr(i+1));   
}
else{
tem = root->left;
decode_huff(tem, s.substr(i+1));
}
tem = root;
}
}

将 s.substr(i+1( 作为第二个参数传递给 someFunction。