当前位置:网站首页>【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;
}
三、牛客网链接
边栏推荐
猜你喜欢
随机推荐
上海控安SmartRocket系列产品推介(二):SmartRocket Modeler可视化建模开发工具
一文读懂配置管理(CM)
关于振弦采集模块及采集仪振弦频率值准确率的问题
「每周译Go」这次我们来点不一样的!--《How to Code in Go》系列上线
左益豪:用代码创造一个新世界|OneFlow U
idea installation steps
Thoroughly understand the differences and application scenarios of session, cookie, sessionStorage, and localStorage (interview orientation)
基于STM32的简易示波器项目(含代码)——HAL库
文档数据库是用来干什么的呢?
使用.NET简单实现一个Redis的高性能克隆版(三)
七、图结构
Tensorflow basic concepts
Postman使用简单演示
Leetcode 105. 从前序与中序遍历序列构造二叉树
利用图像二维熵实现视频信号丢失检测(Signal Loss Detection)
Study Notes: CS520 Knowledge Graphs
以技术御风险,护航云原生 | 同创永益 X 博云举办产品联合发布会
苹果开发者账号申请流程完整版
MySQL学习第一部分:认识MySQL
300万招标!青岛市医疗保障局主机数据库中间件运行维护服务项目