字符串倒序输出,我们第一个想到的就是位置互换,将字符串的第一个位置,与字符串的最后一个位置互换,然后字符串的第二个位置,与倒数第二个位置互换,以此类推,到了中间,左边的位置大于右边的时候,那么这个循环就终止了

循环条件(left < right);

循环语句(在这里也用到了swap)

tmp = string[left];

string[left] = string[right];

string[right] = tmp;

left++;

right++;

不用strlen这个库函数的时候,需要用到自己创建的函数,可以用上字符串的判断条件,末尾是'\0'

用上while循环,*string != '\0' string是一个指针,*string就是第一个数

在while循环里面,string++,随着地址一步一步的慢慢增多,这个字符串上面的所有字符也一个一个的被略过,用count这个变量来输出这个过程。

代码

#include <stdio.h>
int my_strlen(char* string)
{int count = 0;while (*string != '\0'){count++;string++;}return count;
}void reverse_string(char *string)
{int left = 0;int right = my_stlen(string) - 1;//字符串下标从0开始while(left < right)//这个表达式对了,才能进入循环{char tmp = string[left];string[left] = string[right];string[right] = string[left];left++;right--;}
}int main()
{char arr1[] = "abcdef";printf("%s", arr1);reverse_string(arr1);//arr1是一个地址,所以在reverse_string这个函数形参要用到char * 类型的形参printf("%s", arr1);return 0;
}

下面我们使用递归方法

因为交换每次只能最前面一个和最后面一个交换,也只有这两个可以通过0和strlen()- 1轻松获取,中间的这一大坨东西是一直留在那个里面的。

那么我们也可以写出这个迭代函数,就是把第一个和最后一个交换了,用迭代函数处理中间那一串字符串,每次迭代函数都是对那一串字符串进行取值

第一步:先把第一个位置上面的值给取下来,放到临时变量里面,tmp = string[0]

第二部:把最后一个数放在第一个的位置上,string[my_strlen - 1] = string[0]

第三步:(关键的一步),不是把临时变量放到最后一个的空位里面,而是为那中间的那一串字符串设立一个'\0' 字符串的结束标志

最后我们再把 那个临时变量放到那个地方上去

迭代还需要一个判断条件,就是中间的那一串东西没有字符了然后就输出

void reverse_string(char * str)
{char tmp = str[0];str[0] = str[strlen(str) - 1);//str[strlen(str) - 1] = '\0';if (strlen(str + 1) >= 2){reverse_string(str + 1);}str[strlen(str) - 1 = tmp;
}//也可以这样写
void reverse_string(char* str)
{char tmp = *str;int len = my_strlen(str);*str = *(str + len - 1);*(str + len - 1) = '\0';if (my_strlen(str + 1) >= 2){reverse_string(str + 1);}*(str + len - 1) = tmp;
}//就是用上了*这个符号

字符串倒序输出 递归和正常写法相关推荐

  1. string字符串内容倒叙_Java实现字符串倒序输出的常用方法小结

    本文实例汇总了Java实现字符串倒序输出的常用方法,分享给大家供大家参考.具体方法如下: 1. 最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了. 实现代码如 ...

  2. C++ 递归算法将输入的字符串倒序输出

    C++ 递归算法将输入的字符串倒序输出 直接上代码. #include <iostream> #include<string> using namespace std; //使 ...

  3. python解决字符串倒序输出

    #python解决字符串倒序输出 def string_reverse(m):num=len(m)a=[]for i in range(num):a.append(m[num-1-i])#从最后一位的 ...

  4. 汇编程序:将字符串倒序输出

    [任务] 程序功能:从键盘上输入一个字符串,以$结束,将字符串倒序输出(字符串不超过80个字符). 输入样例:abcd#1234 efg$ 输出样例:gfe 321#dcba 算法要求:逐个输入字符( ...

  5. 从键盘输入一个已确定长度的字符串。然后将这个字符串倒序输出

    字符:tnndwhynotdrinkit(催逝员警告) VS无法运行,会报错a[n]中必须为常量 ------------------------------------------ 代码: ​ #i ...

  6. Java实现字符串倒序输出

    Java实现字符串倒序输出 package Strin;//文件夹名称import java.util.Scanner;//导入的Scanner包public class Demo {//类的名称pu ...

  7. C语言基础:使字符串倒序输出

    C语言基础:使字符串倒序输出 1. 用字符指针作形参 例1: void reverse1(char *s) {char* p=s+strlen(s)-1;char t;while(s<p){t= ...

  8. 新手入门之字符串倒序输出

    今天我们来讲字符串倒序输出 字符串,string,这个大家应该很熟悉吧,当我们要怎么把它倒序输出呢,话不多说,看代码! #include <iostream> #include <s ...

  9. 递归实现字符串倒序输出

    package com.yc.algorithm.recursion;import java.util.Scanner;/*** 递归实现反转字符串* @author yc*/ public clas ...

最新文章

  1. python 开发板 i2s_嵌入式小系统I2S接口调试总结
  2. Hadoop MapReduce的模式、算法和用例
  3. 蒂姆·库克:给好人留的后门同时也是给坏人留的
  4. alertmanager 告警恢复_Prometheus配置企业微信告警
  5. 华为荣耀鸿蒙系统升级名单,华为鸿蒙系统正式版首批升级名单公布:这8款机型用户有福了...
  6. (转载)PHP 判断常量,变量和函数是否存在
  7. 12.程序员的自我修养---系统调用与API
  8. PHP Cookbook读书笔记 – 第13章Web自动化
  9. 10句话快速提高项目经理的领导力
  10. [受限玻尔兹曼机] 原理、求解过程推导、深度信念网络
  11. 「玩物得志 App」:一家典型的云原生企业,如何在创业早期数次“弯道超车”? | 云原生Talk...
  12. 生物信息学python脚本_使用Python/Biopython/Clustalw的生物信息学脚本,使用stdout迭代蛋白质目录...
  13. 什么是监管数据?什么是监管信息系统?监管数据安全管理办法说了什么?
  14. 计算机主机箱内部各部件,电脑主机箱内的部件组装图解
  15. Flyme patchrom项目笔记
  16. 关于word2016保存失败
  17. excel高级功能-分级显示
  18. 针对各组的意见,除评论员外的四个人的反思和改进
  19. 京东砸3亿激励一线员工:要么花钱抢人才,要么省钱养废材!
  20. [EJB:011008]Unable to bind EJB Home Interface to the JNDI name: BusinessDelegateBean.

热门文章

  1. 计算机网盘怎么进,教你百度网盘如何进行图文识别?
  2. 关于电源计划无法开启卓越模式/高性能模式,注册表无法找到CSEnabled的解决方法
  3. 万能算法PID趣味总结
  4. antd vue 表格排序升序
  5. 2018年 ICPC北京网络预选赛 A题 Saving Tang Monk II
  6. Python面向对象理解
  7. 三星s6经常信号无服务器,手机突然无服务是怎么回事
  8. 【STM32调试(三)】采集bmp图像保存在SD卡
  9. 如何在SQLServer中处理每天四亿三千万记录的(数据库大数据处理)
  10. Zynq PS DMA控制器应用笔记