【C语言典例】:倒置字符串

文章目录

  • 【C语言典例】:倒置字符串
      • 输入描述:
      • 输出描述:
    • 输入
    • 输出
      • 全部代码
        • 结束语

链接: https://www.nowcoder.com/questionTerminal/b0ae3d72444a40e2bb14af7d4cb856ba
来源:牛客网

将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I

输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割

示例1

输入

I like beijing.

输出

beijing. like I

思路分析

通过观察得知,先对整个字符串逆序,后对字符串中每一个单词逆序便可解决此问题。

  1. 对整个字符串进行逆序
  2. 对字符串中的每一个单词进行逆序

如图所示

注意事项

不能使用scanf,因为scanf一遇到空格就中止,可以使用gets();或者 gets_s();

gets_s()的使用

首先将字符串逆序独立成一个逆序字符的函数

*str为字符串首地址,right为字符串中最后一个字母的下标,

void reseve(char* str, int left, int right)
{while (left < right){char ch = str[left];str[left] = str[right];//交换字符串str[right] = ch;left++;right--;}
}

其次对字符串中的每一个单词进行逆序

     int temp = 0;//数组首元素的下标for (int i = 0; i < len + 1; i++).//遍历字符串{if (arr[i] == ' ' || arr[i] == 0)//遇到空格或者\0就需要单词逆序{reseve(arr, temp, i - 1);//调用逆序数组,  i为空格或者\0的下标 i-1为单词最后一个字母的下标temp = i + 1;//下一个单词的第一个字母的下标}}

全部代码

#include<string.h>
#include<stdio.h>void reseve(char* str, int left, int right)
{while (left < right){char ch = str[left];str[left] = str[right];str[right] = ch;left++;right--;}
}int main()
{char arr[100] = { 0 };gets_s(arr,100);int len = strlen(arr);reseve(arr, 0, len - 1);int temp = 0;for (int i = 0; i < len + 1; i++){if (arr[i] == ' ' || arr[i] == 0){reseve(arr, temp, i - 1);temp = i + 1;}}printf("%s", arr);return 0;
}
结束语

​ 上联:世界那么大,我想去看看;下联:钱包那么小,谁都走不了;横批:好好上班。

【C语言典例】:倒置字符串相关推荐

  1. c语言典例之求n个整数最大连续子序列和

    C语言求最大连续子序列和 问题描述 输入:具有n个数的序列x 输出:输入序列x的任何连续子序列中的最大和 解题思路:列出所有子序列,并求出它们的和,找出其中的最大者 #include<stdio ...

  2. [C语言] [典例详解] 打印杨辉三角(找规律简单实现)

    题目>>> 用C语言打印杨辉三角.杨辉三角参考图如下: 分析>>> 于是不清楚杨辉三角的同学们可以上网查查,可以立刻知道它的相关推理归纳和公式总结.它的简介如下: ...

  3. 【C语言典例】——day4:加油站加油【Switch】

    ※※※大家好!我是同学[森],一名计算机爱好者,今天让我们进入刷题模式.若有错误,请多多指教.

  4. 【C语言典例】——day6:猴子吃桃

    ※※※大家好!我是同学[森],一名计算机爱好者,今天让我们进入刷题模式.若有错误,请多多指教.

  5. 【C语言典例】——day3:设计魔方阵(数组)

    ※※※大家好!我是同学[森],一名计算机爱好者,今天让我们进入刷题模式.若有错误,请多多指教.

  6. 【C语言典例】——day7:尼科彻斯定理

    ※※※大家好!我是同学[森],一名计算机爱好者,今天让我们进入刷题模式.若有错误,请多多指教.

  7. 【C语言典例】——day2:绘制余弦函数(多重循环打印图形)

    ※※※大家好!我是同学[森],一名计算机爱好者,今天让我们进入刷题模式.若有错误,请多多指教.

  8. [C语言][典例详解]打印杨辉三角(找规律简单实现)

    目录 杨辉三角的相关知识 杨辉三角图: 杨辉三角的规律 在编程中实现 第一步 :我们先实现数字的打印,后面再加上空格构成三角形形状: ​编辑 1.首先我们可以直观的看出三角形的两个斜边都是1:所以我们 ...

  9. 【C语言典例】——day10:杨氏矩阵

    ⭐前言⭐ ※※※大家好!我是同学[森],一名计算机爱好者,今天让我们进入刷题模式.若有错误,请多多指教.

最新文章

  1. 工作流引擎 SpringBoot+flowable完美结合,快速实现工作流,so easy
  2. JS Math的几个方法使用实例
  3. 开发日记-20190403
  4. 详解浏览器解析一个URL的全过程
  5. 嵌入式Servlet容器
  6. Asp.Net Core 发布和部署(Linux + Jexus )
  7. window安全模式的用途
  8. 2-字符串能否构成三角形及何种三角形
  9. IDEA中识别Git上新加的分支
  10. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(八):MyBatis分页功能实现
  11. 元注解@interface的理解使用
  12. 直播首屏耗时400ms以下的优化实践
  13. 小程序直播开发demo
  14. php开发人脸识别的步骤,人脸识别的流程及主要技术
  15. 网页版即时通讯聊天工具,支持主流浏览器,无需安装即可使用
  16. 简单的贪吃蛇小游戏。使用的是纯原生 JavaScript 和 HTML ,CSS
  17. 语音验证码接口PYTHO语言
  18. 操作系统镜像资源下载
  19. 基于区块链的供应链金融创新
  20. [前端] 前端bootstrap col-xs-6 col-md-3的布局意思

热门文章

  1. 用Go语言 模拟银行存款,取款,查询等操作 (Golang经典编程案例)
  2. 尚硅谷H5+CSS3基础课笔记二(CSS部分)
  3. 安泰测试Agitek-精密LCR数字电桥TH2816A报价/选型
  4. 详解Shiro认证流程
  5. java中Criteria浅解
  6. 过去的 2017 年
  7. 如何用Python提高工作的核心竞争力?
  8. 大数据技术与原理之流计算基本知识点梳理(一)
  9. java测试网络延时_Java如何实现延时访问
  10. out.flush()和out.close()有什么作用?