递归实现逆序,不另外设串存储空间
1.从输入到存储时就改变存储的顺序
void InvertStore(char a[]){ char ch; static int i = 0; cin >> ch; if(ch != '.'){ InvertStore(a); a[i++] = ch; } a[i] = '\0'; //结束符 }
通过递归的递归工作栈,使输入的字符存入到栈当中,改变存储的顺序。
2.对已有存储空间的字符串实现逆序
void change(char a[],int i,int j){ //交换i和j char a1 = a[i]; a[i] = a[j]; a[j] = a1; } void change2(char a[],int i,int j){ //从i到j实现逆序 if(i==j||j+1==i) return; else {change(a,i,j);change2(a,++i,--j);} }
通过两两交换实现逆序