一.字符串的直接倒叙

输入一个字符串,实现倒叙输出,我想到的方法有两种:

首先把输入的字符串存入一个数组;

1.方法一:直接逆序打印这个数组,即从最后一个元素向前打印;

C代码:

#include <stdio.h>
int main()
{
//输入一个字符串,逆序打印int len=0;char s[20]={0};printf("请输入一个字符串:\n");fgets(s,sizeof(s),stdin);//可以输入任何字符,包括回车符for(len=0;s[len]!='\0';len++);//计算字符串长度len--;//去掉回车符后实际字符长度for(int i=0;i<len;i++){printf("%c",s[len-i-1]);//逆序打印数组}printf("\n");    return 0;
}

结果如下图:

2.方法二:对称交换元素位置后,直接打印这个数组;

C代码:

 #include <stdio.h>
int main()
{//输入一个字符串,倒叙输出(对称交换位置)int len=0;char s[20]={0};printf("请输入一个字符串:\n");fgets(s,sizeof(s),stdin);//可以输入任何字符,包括回车符for(len=0;s[len]!='\0';len++);//计算字符串长度len--;//最后是回车符,所以减一for(int i=0;i<len/2;i++)//对称交换位置{//经过3次'^'运算,可以实现数据的交换s[i]^=s[len-i-1];s[len-i-1]^=s[i];s[i]^=s[len-i-1];}printf("%s",s);//打印新数组
//  printf("\n");//由于前面回车符还在最后面,所以不用换行return 0;
}

结果如下图:

二.单词的倒叙输出

如:输入一个字符串 "are you ok" 单词倒叙输出 "ok you are" 单词字母本身顺序没有变化,单词顺序改变;我的思路是先把字符串全部倒叙,再逆序一个单词

C代码:

  #include <stdio.h>
int main()
{ //单词倒叙int len=0,k=0,l=0,temp=0;char s[50],a[50]={0};printf("请输入:\n");fgets(s,sizeof(s),stdin);//可以输入任何字符,包括回车符for(len=0;s[len]!='\0';len++);//计算数组长度//printf("%d\n",len);//不明白的可以打印长度看看len--;s[len]=0;//替换掉回车符len--;for(k=0;k<=len;k++)//也可以不用存入新数组,直接对称交换位置{a[k]=s[len-k];//逆序存入新数组}
//    printf("[%s]\n",a);//打印逆序数组for(int i=0;i<=len+1;i++){if(a[i]==' '||a[i]=='\0')//检测空格和结束符{//for(l=0;l<i-temp-1;l++);//计算单个单词长度l=i-temp;//计算单个单词长度for(int j=0;j<l/2;j++)//逆序一个单词,对称交换位置{a[j+temp]^=a[i-j-1];a[i-j-1]^=a[j+temp];a[j+temp]^=a[i-j-1];}temp=i+1;}}printf("%s",a);printf("\n");return 0;
}

结果如下图:

注:如果有错的地方,或者有更好的方法,请大佬们指点指点

字符串的倒叙输出(直接倒叙和单词倒叙)相关推荐

  1. 汇编语言利用子程序的方法编程,把DATAS段里面的字符串倒叙输出到屏幕

    汇编语言利用子程序的方法编程,把DATAS段里面的字符串倒叙输出到屏幕 题目: 利用子程序的方法编程,把DATAS段里面的字符串倒叙输出到屏幕 DATAS SEGMENT db 'welcome' D ...

  2. 4--模板语法中三元表达式、字符串倒叙输出方法

    一.三元运算判断&按钮禁启用 功能介绍:成绩为60分以下的字体为红色,其他的为绿色 代码如下: <!DOCTYPE html> <html><head>&l ...

  3. PTA(02)典例详解(7-48 龟兔赛跑7-49 币值转换7-51 念数字7-53 抓老鼠啊~亏了还是赚了?7-56 谁先倒7-58 输出GPLT7-60 福到了)

    目录 7-48 龟兔赛跑 7-49 币值转换 7-51 念数字 7-53 抓老鼠啊~亏了还是赚了? 7-56 谁先倒 7-58 输出GPLT 7-60 福到了 7-48 龟兔赛跑 乌龟与兔子进行赛跑, ...

  4. 输入一个整数将其倒着输出,如54321——12345。

    /*输入一个整数将其倒着输出,如54321--12345.*/ #include<stdio.h> int main() {int i, t;printf("请输入一个整数:\n ...

  5. 杨辉三角详解--及杨辉三角正输出与倒向输出

    PS:再次感谢官方大大推荐的关注,非常非常蟹蟹啦 关于杨辉三角,这里引用百度百科的简介 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一 ...

  6. 输出倒三角图案:在屏幕上显示如下倒三角图案

    输出倒三角图案:在屏幕上显示如下倒三角图案 /*输出倒三角图案:在屏幕上显示如下倒三角图案.     * * * *      * * *       * *        * 试编写相应程序.*/ ...

  7. OpenJudge NOI 1.7 28:单词倒排

    [题目链接] OpenJudge NOI 1.7 28:单词倒排 [题目考点] 1. 多字符串处理 方法1:string类对象数组 设string类对象数组s,s[i]保存第i个字符串.s[i]是st ...

  8. 华为机试HJ31:单词倒排

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 对字符串中的所有单词进行倒排. 说明: 1.构成单词的字符只有26个大写或小写英文字 ...

  9. C++ 编程题/单词倒排,骆驼命名法,查找兄弟单词

    问答题 问答题1:TCP建立连接的过程采用三次握手,已知第三次握手报文的发送序列号为 1000,确认序列号为 2000,请问第二次握手报文的发送序列号和确认序列号分别为? 已知第三次握手的发送序列号和 ...

  10. OJ系列之---单词倒排

    最近在华为OJ刷题,对之前做的一道单词倒排题目没怎么注意.重新写了一遍,发现了一个重大BUG,以前比较忽视,现在发现这个问题还是有点严重,编程还是要多练习才是.应用了string数组.string数组 ...

最新文章

  1. 优秀的 Java 项目是如何分层的?
  2. 通过Image对象获取对象的格式
  3. 高版本glibc环境编译兼容低版本机器的.so文件
  4. java-两数倒置后求和
  5. 为Ubuntu Server 安装图形桌面环境
  6. paip.c++读写ini文件.
  7. c string erase_威刚推出SE770G移动固态硬盘:提供两年质保 附送双头USB-C
  8. 渗透测试工具——密码攻击工具
  9. Python程序设计实验——1.尼姆游戏
  10. 云电脑服务:技术与商业模式双重创新
  11. 115CSS3+JS:胶卷式放映
  12. 求星期算法c语言程序,C语言根据指定日期计算是星期几
  13. python读取txt文件写入失败-Python write 函数写文件失败
  14. frameset框架属性
  15. 超好看的3D烟花代码(html+css+js)带音乐
  16. 編程之美﹣電梯調度算法
  17. 适合一个人创业比较挣钱的项目
  18. 仿微信打开红包旋转动画
  19. dhu oj 题目列表
  20. 基于Java的开源3D游戏引擎jMonkeyEngine

热门文章

  1. 电脑手机css自适应,怎么把一个pc页面自适应手机屏幕
  2. win7系统电脑蓝屏怎么解决,如何解决win7电脑蓝屏
  3. Spring AOP中Introduction的使用
  4. Update Strategy小记
  5. mysql 分析explain命令执行sql的计划
  6. rknn模型转换问题记录
  7. Android 11 正式发布:更方便的操作和更安全的隐私
  8. python爬虫——校花网
  9. 职称英语计算机考试取消,职称英语考试取消了吗
  10. 论文翻译2-SRAVS-Improving Quality of Experience by Adaptive Video Streaming with Super-Resolution