c++封装函数版本(无话可说版,啥也不是版)

int main() {string s;getline(cin, s);reverse(s.begin(), s.end());cout << s;return 0;}

指针倒序输出版本

1.首先来了解一下顺序输出的逻辑

int main() {char a[20];cin.get(a, 20);int n = strlen(a) / sizeof(char);cout << "n:" << n << endl;char *p = a;//&a[n];while (*p != '\0') {cout << *p << endl;*p++;//地址加1*p++也是地址加一,从右到左的结合型}}

char *p = a;//&a[n];//一个指针指向数组的首地址
    while (*p != '\0')//当指针没有指向字符串的结束符号'\0'时,进入循环,指针自加

2,类似地再了解一下倒序输出的逻辑。

int main() {char a[20];cin.get(a, 20);int n = strlen(a) / sizeof(char);cout << "n:" << n << endl;char *p = a;//&a[n];p = p + n;while (p != a) {*p--;//地址加1*p++也是地址加一,从右到左的结合型cout << *p << endl;}
}

求出指针指向数组的末地址应当是p+n-1(n为数组元素个数),但是在循环体判断条件中,指针指向首地址时就结束了不会打印第一个字母。所以我们用上一个地址,先自减再打印。用元素2的地址自减打印元素1,依次类体。所以第一个为p = p + n,为结束符号的地址;

然后把每一个元素放入一个新的数组中就打印出来了。如下

int main() {char a[20], b[20];cin.get(a, 20);int n = strlen(a) / sizeof(char);cout << "n:" << n << endl;char *p = a;//&a[n];p = p + n ;while (p != a) {*p--;//地址加1*p++也是地址加一,从右到左的结合型cout << *p << endl;static int i = 0;b[i++] = *p;}cout << b << endl;

借盆交换(声明新变量来存储)倒序输出版本

元素的个数不影响,只要保证对称抽两头的数据交换了就可以了。

于是需要一个指针指向s首地址,一个指针e指向末地址。只要满足s<e。s的内容与e的内容就交换。并且s自加,e自减。

a,b交换的逻辑:

t=a;a=b;b=t;


void reverse1(char *s) {char *p = s + strlen(s) - 1;//末地址char t;while (s < p) {//遍历t = *p;*p = *s;*s = t; //交换p--;s++;}
}int main(void) {char str[128];scanf("%s", str);reverse1(str);printf("%s\n", str);return 0;
}

这里还可以这样写

int main() {int n;//输入个数cin >> n;int temp = 0;int a[n];for (int i = 0; i < n; i++) {cin >> a[i];}for (int i = 0; i <= n / 2; i++) {cout << i << endl;temp = a[i];a[i] = a[n - i - 1];a[n - i - 1] = temp;}for (int i = 0; i < n; i++) {cout << a[i];}}

字符串倒序输出的逻辑相关推荐

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

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

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

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

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

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

  4. 字符串倒序输出 递归和正常写法

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. ATS 5.3.0缓存架构
  2. 清华NLP实验室刘知远:如何写一篇合格的NLP论文
  3. processing文本可视化_推荐7个数据可视化工具,让你的信息快速生成可视化
  4. A.DongDong破密码
  5. 用 Parity 发送 ERC20 Token
  6. 整型数据在内存中的存放形式
  7. python快速示例_Python编程入门-基本示例,快速,上,手,基础
  8. 用JAVA制作小游戏——推箱子(三)
  9. Linux 添加环境变量
  10. TypeError: Object of type ‘TrackedArray‘ is not JSON serializable
  11. 直播预告|阿里云容器网络文件系统发布会
  12. 5G通讯的认知与见解
  13. windows 离线安装nessus
  14. Linux删除Nginx有残留怎么办?
  15. python存储JSON
  16. Zephyr MCUBoot
  17. html清除左侧,CSS清除浮动
  18. 生活随笔:心血来潮的今天
  19. C#泛型List 的定义、作用、用法
  20. 安装SQL2000系统提示文件挂起的解决办法

热门文章

  1. WireMock踩坑记录
  2. 由博采公司赔率倒推LPL各队互相获胜概率
  3. 想要气场强大,在气势上压倒对方,如此重要的4条,不用就亏大了
  4. 微信公众号开发使用weui上传图片
  5. 快速排序及其C++代码实现
  6. sws_scale函数的用法-具体应用
  7. cocos2d-x游戏iphone移植到android需要注意事项
  8. 大家一起来找茬,新手第一次layout到底能挑出多少毛病?
  9. 曾经如落叶般斑斓缤纷,傲然天地之间
  10. Double,double