栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】[编程题]倒置字符串

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】[编程题]倒置字符串

文章目录
  • 前言
  • 一、题目
  • 二、算法讲解
  • 三、牛客网链接


前言

今天刷牛客网题目,碰到一道题感觉挺有意思的,对现阶段的我来说还是有点难度的,现在分享给大家。


一、题目

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

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

二、算法讲解

整体思路:
首先先将每个单词进行导致,比如 I like beijing. 倒置完之后就是 I ekil .gnijieb,然后再将整个字符数组进行倒置,正好就是 beijing. like I

#include 
#include 

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指向''时循环结束,单词倒置完成
	{
		char* start = p;
		char* end = p;
		//当末指针指向空格或者正好是最后一个单词指向'',循环结束
		while (*end != ' ' && *end != '')
		//让end指针指向单词最后一个字母
		{
			end++;
		}
		reverse(start, end-1);  //字符串倒置函数,比较简单
		p = end + 1;//令指针p指向下一个单词,循环进入下一个单词的倒置
	}
	int len = strlen(str);      //求出整个字符串的长度
	reverse(str, str + len - 1);//整个字符串进行倒置
	puts(str);                  //输出倒置后的字符串
	return 0;
}

三、牛客网链接

倒置字符串_牛客网

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号