倒置字符串

简介: 倒置字符串


/***********************************************************************

目的:输入一句英文(长度不超过100),并将其中的单词进行倒置,标点不倒置。如 I like beijing. 倒置后变为 beijing. like I

分析:三步翻转法

▶ 1、字符串整体翻转:

.gnijieb ekil I

▶ 2、每个单词逆序

beijing. like I

平台:Visual studio 2017 && windows

*************************************************************************/

📝 实现代码1:

#include<stdio.h>
#include<string.h>
void reverse(char* left, char* right)
{
  while(left < right)
  {
    char temp = 0;
    temp = *left;
    *left = *right;
    *right = temp;
    left++;
    right--;  
  }
}
int main()
{
  char arr[100] = { 0 };
  //输入字符串
  gets(arr);
  //求字符串的长度
  int len = strlen(arr);
  //字符串整体逆置,确定左下标和右下标
  reverse(arr, arr + len - 1);  
  //每个单词逆置
  char* start = arr;
  while(*start)
  {
    char* end = start;
    while(*end != ' ' && *end != '\0')
    {
      end++;
    }
    reverse(start, end - 1);
    if(*end == ' ')
    {
      //说明后面还有未逆置的单词
      start = end + 1;
    }
    else
    {
      //遇到了'\0',不能再往后了
      start = end;
    } 
  }
  printf("%s\n", arr);
  return 0;
}

相关文章
|
存储 关系型数据库 数据库
Windows安装Postgresql之解压版
Windows安装Postgresql之解压版
1232 0
|
SQL 关系型数据库 MySQL
PHP与MySQL交互之基础教程
【8月更文挑战第31天】 在数字世界中,数据是推动一切的核心力量。本文将引导你探索PHP与MySQL的协同工作,通过实际代码示例,展示如何建立连接、执行查询以及处理结果集。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你提供宝贵的实践知识。
|
消息中间件 缓存 API
【后端面经】【消息队列】22 | 消息队列:消息队列可以用来解决什么问题?-03 扩展性+可用性+事件驱动思想
【5月更文挑战第8天】 本文探讨了扩展性、可用性和事件驱动的概念。扩展性方面,消息队列简化了新下游的接入,而同步调用需要复杂的协调。在保证高可扩展性和研发效率的设计中,若无法使用消息队列,可以提供一致性抽象来减轻接入负担。可用性上,消息队列只需确保消息发送,而同步调用需保证所有下游成功,更易出错。事件驱动是一种通过事件进行组件间通信的架构模式,具有低耦合、高扩展性和高可用性,适合处理复杂流程。结合SAGA的事件驱动方案能实现高级分布式事务管理,即使实时性稍弱,但能保证事务的异步和高效执行。
186 1
|
缓存 监控 容灾
0-1设计高可用、高并发、高伸缩的分布式项目架构
0-1设计高可用、高并发、高伸缩的分布式项目架构
265 0
|
数据安全/隐私保护
各大OA产品试用地址&初始账户密码
各大OA产品试用地址&初始账户密码
2192 0
|
知识图谱 流计算
Google Earth Engine ——全球陆地数据同化系统(GLDAS)摄取了卫星和地面观测数据产品大气分析场、降水场和辐射场数据集
Google Earth Engine ——全球陆地数据同化系统(GLDAS)摄取了卫星和地面观测数据产品大气分析场、降水场和辐射场数据集
1858 0
Google Earth Engine ——全球陆地数据同化系统(GLDAS)摄取了卫星和地面观测数据产品大气分析场、降水场和辐射场数据集
|
存储 移动开发 缓存
浅谈Android热修复的前因后果与实现原理。(上)
最近在集成热修复,正好要进行技术分享,所以就来好好梳理一下 热修复的前因后果。
254 0
|
缓存 Java Spring
Spring 获取单例流程(三)
读完这篇文章你将会收获到 • Spring 何时将 bean 加入到第三级缓存和第一级缓存中 • Spring 何时回调各种 Aware 接口、BeanPostProcessor 、InitializingBean 等
179 0
|
域名解析 缓存 监控
【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ(中)
【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ(中)
【方向盘】达到Linux第三阶段的常用命令笔记记录---Part Ⅱ(中)
|
芯片
蓝牙ATT_LIST设置服务指令
蓝牙ATT_LIST设置服务指令
275 0
蓝牙ATT_LIST设置服务指令