C语言字符串倒置的递归与非递归解法-创新互联
思路分析
网站栏目:C语言字符串倒置的递归与非递归解法-创新互联
分享URL:http://scgulin.cn/article/gjjhp.html
字符串倒置函数的实现,需要我们在函数中使用left、right分别定位字符串的起点、末点,因此我们传参时需要字符串的首地址(str)、字符串的长度(len),将这两个位置的字母互换,然后让left++到字符串下一个地址,right–到字符串末尾的上一个地址,一直重复互换操作,直到不满足left< right,即可实现字符串倒置
站在用户的角度思考问题,与客户深入沟通,找到襄州网站设计与襄州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名与空间、虚拟主机、企业邮箱。业务覆盖襄州地区。递归与非递归解法大体的思路是相似的,只不过递归解法中需要考虑如何进行left和right的更新,以此逼近递归条件。
非递归解法#incldue#includevoid reverse(char* str, int len)
{char* left = str;
char* right = str + len - 1;
while (left< right)
{char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
递归解法char* reverse(char* str, int len)
{if (*str == '\0') //判断空串
{return NULL;
}
if (len >1)
{char tmp = *str;
*str = *(str + len - 1);
//下一次进入函数时让最后一个字母暂时置为\0,传str + 1
//也就完成了left++; right--; 的操作
*(str + len - 1) = '\0';
reverse(str + 1);
//最后再把置为\0的字母,重复赋值
*(str + len - 1) = tmp;
}
return str;
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:C语言字符串倒置的递归与非递归解法-创新互联
分享URL:http://scgulin.cn/article/gjjhp.html