当前位置:网站首页>C语言题解:倒置字符串
C语言题解:倒置字符串
2022-08-10 09:51:00 【某某小卢】
完整代码在最后
题目:
将一句话的单词进行倒置,标点不倒置。比如 "I like beijing.",经过处理后变为:"beijing. like I"。
字符串长度不超过100。
输入描述:
输入一个仅包含小写字母、空格、'.' 的字符串,长度不超过100。
'.' 只出现在最后一个单词的末尾。
输出描述:
依次输出倒置之后的字符串,以空格分割。
示例1
思路讲解:
这题倒置字符串与平常我们遇到的不太一样,平常我们都是将abcdef变成fedcba,而本题我们将
I like beijing。变成beijing。 like l ;它这里是将一个个单词倒序的。
所以正常的倒序是做不到的。而我们是否可以在正常的倒序的基础上将这个进行改进呢?
答案肯定是可以的啦!
我们可以想办法把beijing这个单词先进行倒序,变成gnijieb,然后再利用我们传统的倒序把一个个字母弄到前面去。所以我们先把I like beijing。变成gnijieb。 ekil I 然后再进行倒序就好啦。
我们需要先将单词反序
然后利用fan这个函数进行倒序
到这里的时候我们的I like beijing。变成gnijieb。 ekil I 然后我们进行单词的一个变换位置
我们可以利用fan这个函数再次变换,就可以完成我们想要的效果了
运行结果:
完整代码:
#include<stdio.h>
#include<string.h>
#include <assert.h>
void fan(char* left, char* right)
{
assert(left);
assert(right);
while (left < right)
{
char t;
t = *left;
*left = *right;
*right = t;
left++;
right--;
/*这里将字符串里面的每一个单词反序*/
}
}
int main()
{
char arr[101] = { 0 };
gets(arr);/*输入数组*/
char* cur = arr;
while (*cur)
{
char* start = cur;
char* end = cur;
while (*end != ' ' && *end != '\0')
{
end++;
/*确定空格或者\0的位置*/
}
if (*cur != '\0')
cur = end + 1;/*+1就直接到了空格的下一个啦*/
else
cur = end;/*end是\0的时候结束循环*/
fan(start, end - 1);
}
int len = strlen(arr);
fan(arr, arr + len - 1);/*单词之间反序*/
printf("%s ", arr);
return 0;
}
边栏推荐
- 「业务架构」TOGAF建模:组织分解图(组织映射)
- Fourier series and Fourier transform
- 【数据库架构】OLTP 和 OLAP:实际比较
- CAD to WPF: Tips on converting CAD drawing files to WPF vector code files (xaml files)
- JS高级 之 Promise 详解
- LCD模块如何建立联系分析
- 「应用架构」六边型架构:三个原则和一个实现示例
- The Generation of Matlab Symbolic Functions and the Calculation of Its Function Values
- 中国驻越南使馆提醒在越北部、中部地区中国公民做好台风“木兰”安全防范
- 多元线性回归分析(Stata)
猜你喜欢
Payment x Aggregation x Ledger Separation - The Way to Avoid Risk of "Erqing" on the Return Platform
裸辞→自我放松→闭关→复习→斩获Offer
关于编程本质那些事
CAD to WPF: Tips on converting CAD drawing files to WPF vector code files (xaml files)
Which is the strongest workflow engine for "Technology Selection"?Chief Architecture Helps You Pick
「业务架构」TAGAF建模:业务服务/信息图
Lasso regression (Stata)
IDEA中xml文件头报错:URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
消息队列概述
JWT:拥有我,即拥有权力
随机推荐
解决ASP.NET Core在Task中使用IServiceProvider的问题
腾讯云校园大使开始招募啦,内推名额和奖金等你来拿
Guo Jingjing's personal chess teaching, the good guy is a robot
win下的开发环境变量记录
web项目访问引用jar内部的静态资源
CSDN 21 Days Learning Challenge - Polymorphism (05)
Relearn bubble sort
IDEA中xml文件头报错:URI is not registered (Settings | Languages & Frameworks | Schemas and DTDs)
Basic concepts, structures, and classes of thread pools
【系统设计】S3 对象存储
Flink运行时架构 完整使用 (第四章)
"Guangzhou highway engineering measures for the supervision and administration of production safety, and revised from six aspects
JS高级 之 Promise 详解
LiveGBS操作日志页面快速的筛选上级平台的调用记录直播观看录像回看等操作
哈希表,哈希桶的实现
【Prometheus】Node Exporter常用查询PromQL 语句大总结
2022-08-09 第六小组 瞒春 学习笔记
LCD DRM驱动框架分析一
Excel draws statistical graphs
「应用架构」六边型架构:三个原则和一个实现示例