字符串的倒叙输出(直接倒叙和单词倒叙)
一.字符串的直接倒叙
输入一个字符串,实现倒叙输出,我想到的方法有两种:
首先把输入的字符串存入一个数组;
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;
}
结果如下图:
注:如果有错的地方,或者有更好的方法,请大佬们指点指点
字符串的倒叙输出(直接倒叙和单词倒叙)相关推荐
- 汇编语言利用子程序的方法编程,把DATAS段里面的字符串倒叙输出到屏幕
汇编语言利用子程序的方法编程,把DATAS段里面的字符串倒叙输出到屏幕 题目: 利用子程序的方法编程,把DATAS段里面的字符串倒叙输出到屏幕 DATAS SEGMENT db 'welcome' D ...
- 4--模板语法中三元表达式、字符串倒叙输出方法
一.三元运算判断&按钮禁启用 功能介绍:成绩为60分以下的字体为红色,其他的为绿色 代码如下: <!DOCTYPE html> <html><head>&l ...
- 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 龟兔赛跑 乌龟与兔子进行赛跑, ...
- 输入一个整数将其倒着输出,如54321——12345。
/*输入一个整数将其倒着输出,如54321--12345.*/ #include<stdio.h> int main() {int i, t;printf("请输入一个整数:\n ...
- 杨辉三角详解--及杨辉三角正输出与倒向输出
PS:再次感谢官方大大推荐的关注,非常非常蟹蟹啦 关于杨辉三角,这里引用百度百科的简介 杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的<详解九章算法>一 ...
- 输出倒三角图案:在屏幕上显示如下倒三角图案
输出倒三角图案:在屏幕上显示如下倒三角图案 /*输出倒三角图案:在屏幕上显示如下倒三角图案. * * * * * * * * * * 试编写相应程序.*/ ...
- OpenJudge NOI 1.7 28:单词倒排
[题目链接] OpenJudge NOI 1.7 28:单词倒排 [题目考点] 1. 多字符串处理 方法1:string类对象数组 设string类对象数组s,s[i]保存第i个字符串.s[i]是st ...
- 华为机试HJ31:单词倒排
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 对字符串中的所有单词进行倒排. 说明: 1.构成单词的字符只有26个大写或小写英文字 ...
- C++ 编程题/单词倒排,骆驼命名法,查找兄弟单词
问答题 问答题1:TCP建立连接的过程采用三次握手,已知第三次握手报文的发送序列号为 1000,确认序列号为 2000,请问第二次握手报文的发送序列号和确认序列号分别为? 已知第三次握手的发送序列号和 ...
- OJ系列之---单词倒排
最近在华为OJ刷题,对之前做的一道单词倒排题目没怎么注意.重新写了一遍,发现了一个重大BUG,以前比较忽视,现在发现这个问题还是有点严重,编程还是要多练习才是.应用了string数组.string数组 ...
最新文章
- 优秀的 Java 项目是如何分层的?
- 通过Image对象获取对象的格式
- 高版本glibc环境编译兼容低版本机器的.so文件
- java-两数倒置后求和
- 为Ubuntu Server 安装图形桌面环境
- paip.c++读写ini文件.
- c string erase_威刚推出SE770G移动固态硬盘:提供两年质保 附送双头USB-C
- 渗透测试工具——密码攻击工具
- Python程序设计实验——1.尼姆游戏
- 云电脑服务:技术与商业模式双重创新
- 115CSS3+JS:胶卷式放映
- 求星期算法c语言程序,C语言根据指定日期计算是星期几
- python读取txt文件写入失败-Python write 函数写文件失败
- frameset框架属性
- 超好看的3D烟花代码(html+css+js)带音乐
- 編程之美﹣電梯調度算法
- 适合一个人创业比较挣钱的项目
- 仿微信打开红包旋转动画
- dhu oj 题目列表
- 基于Java的开源3D游戏引擎jMonkeyEngine
热门文章
- 电脑手机css自适应,怎么把一个pc页面自适应手机屏幕
- win7系统电脑蓝屏怎么解决,如何解决win7电脑蓝屏
- Spring AOP中Introduction的使用
- Update Strategy小记
- mysql 分析explain命令执行sql的计划
- rknn模型转换问题记录
- Android 11 正式发布:更方便的操作和更安全的隐私
- python爬虫——校花网
- 职称英语计算机考试取消,职称英语考试取消了吗
- 论文翻译2-SRAVS-Improving Quality of Experience by Adaptive Video Streaming with Super-Resolution