当前位置:网站首页>【C语言】[编程题]倒置字符串
【C语言】[编程题]倒置字符串
2022-08-08 10:38:00 【心之王者716】
前言
今天刷牛客网题目,碰到一道题感觉挺有意思的,对现阶段的我来说还是有点难度的,现在分享给大家。
一、题目
将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I
输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
二、算法讲解
整体思路:
首先先将每个单词进行导致,比如 I like beijing. 倒置完之后就是 I ekil .gnijieb,然后再将整个字符数组进行倒置,正好就是 beijing. like I
#include <stdio.h>
#include <string.h>
void reverse(char* left, char* right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char str[101] = {
0 };
gets(str); //输入字符数组
char* p = str;//将字符数组首元素地址放到指针变量p中
while (*p) //判断当*p指向'\0'时循环结束,单词倒置完成
{
char* start = p;
char* end = p;
//当末指针指向空格或者正好是最后一个单词指向'\0',循环结束
while (*end != ' ' && *end != '\0')
//让end指针指向单词最后一个字母
{
end++;
}
reverse(start, end-1); //字符串倒置函数,比较简单
p = end + 1;//令指针p指向下一个单词,循环进入下一个单词的倒置
}
int len = strlen(str); //求出整个字符串的长度
reverse(str, str + len - 1);//整个字符串进行倒置
puts(str); //输出倒置后的字符串
return 0;
}
三、牛客网链接
边栏推荐
- A small test of basic grammar, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, basic grammar of go lang and the use of variables EP02
- 我用开天平台做了一个城市防疫政策查询系统【开天aPaaS大作战】
- nacos安装
- vs2019+boost library (boost_1_67_0) installation
- Apple developer account application process full version
- 一、用户数据仓库
- NoSQL的意思就是就是不使用SQL吗?
- Redis 定长队列的探索和实践
- 为什么说键值数据库有高可扩展性呢?
- Optional common method analysis
猜你喜欢

Apple developer account application process full version

NLP和CV中的Local和Global建模

Loadrunner12.0.2安装及中文语言包安装(汉化)

贵州酒店集团特产券解析

自学脚手架——《热学》 by 李椿(第一,二,三,四,五章)

People's Congress Jincang database login, view database

Loadrunner12.0.2 installation and Chinese language pack installation (Chinese)

开源一夏 | 牛plus,多层嵌套动态JSON该如何解析总结

面试突击72:输入URL之后会执行什么流程?

四、哈希表
随机推荐
Loadrunner的录制event为0的问题解决方法与思路
业务缓存之体系化设计与开发
"Weekly Translate Go" This time we have something different!-- "How to Code in Go" series launched
Tensorflow基础概念
开源一夏 | 牛plus,多层嵌套动态JSON该如何解析总结
MySQL源码解析之执行计划
关于win下面Celery服务报 Process 'Worker' exited with 'exitcode 1' [duplicate]
一文读懂配置管理(CM)
Vulnhub靶机:GEMINI INC_ 1
自学脚手架——《热学》 by 李椿(第一,二,三,四,五章)
列存储数据库是通过什么来定位的呢?
部署spark2.2集群(standalone模式)
市面上有哪些经典的文档数据库呀?
oracle存储过程中表名变量的异常
ReentrantLock原理,ReentrantLock和synchronized区别
ASP.NET Core 2.0中,解决大文件上传配置问题
简单混合运算计算器
shell 创建LVM逻辑据卷
卫星互联网真能替代 5G?
Flutter Game Tutorial Recreate the famous T-Rex game with Flutter and Flame