258递归实现字符串的逆序存储
程序员文章站
2024-03-23 14:41:34
...
#include<iostream>
using namespace std;
#include<string>
//递归,字符串逆序?挺难搞的耶
//自己调用自己……
//str要逆序的字符串,num递归层数
//string做形参,是值传递还是址传递?
//不会,放弃,参考这个:https://blog.csdn.net/weixin_43722827/article/details/102755802
void reverse(string& str,int num) {//写完函数括号,TAB键能直接把光标移出括号,新发现耶……
//写废掉了的一部分代码
//if (str.length() == 1) {//把str理解成string类的对象,length后面为什么加括号就说得通了
// return str;
//}
//else {
//}
//重写
if (str.length() / 2 ==num) {
return;
}
else {
char temp;
temp = str[num]; str[num] = str[str.length() - 1 - num]; str[str.length() - 1 - num] = temp;
reverse(str, ++num);
}
}
int main() {
while (true) {
string str;
cin >> str;
if ("0" == str) {//不止是函数括号,所有的括号都能用TAB键跳过耶……
break;
}
else {
reverse(str, 0);
cout << str << endl;
}
}
//string a = "aaa";//看来,length是不算\0的
//cout << a.length() << endl;
//system("pause");
return 0;
}
tips:
递归:
这玩意好难,这题搞了半天,哎。
string字符串的长度:
string是一个类,length是成员函数,所以length后面加个()是应该的。
他返回的值是不计算字符串尾的“\0"的。测试过。
string a = "aaa";
cout << a.length() << endl;//输出的值是3,看来,length是不算\0的
string作为函数参数:
string& 址传递,string ,值传递。在reverse函数里试过的。
TAB键与括号
括号刚打出来,里面的内容刚填完的时候,TAB键可以让光标跳出括号,可以代替方向右键。
上一篇: java中方法的参数是值传递。基本类型的数据无法实现赋值
下一篇: Python现实去重复原理
推荐阅读
-
258递归实现字符串的逆序存储
-
单向链表的逆序,不使用额外节点存储实现
-
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
-
一个JavaScript递归实现反转数组字符串的实例_javascript技巧
-
php用递归实现字符串的全排列?该怎么解决
-
存储过程里的递归 实现方法
-
编写一个函数 reverse_string(char * string)(递归实现) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。
-
编写一个函数reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
-
Python字符串逆序的实现方法【一题多解】
-
存储过程里的递归 实现方法