前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >字符串循环左移 详解

字符串循环左移 详解

作者头像
叶茂林
发布2023-07-28 21:57:34
2290
发布2023-07-28 21:57:34
举报
文章被收录于专栏:叶子的开发者社区

题目描述

输入一个字符串和一个非负整数N,要求将字符串循环左移N次。

输入格式:

输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。

输出格式:

在一行中输出循环左移N次后的字符串。

输入样例:

代码语言:javascript
复制
Hello World!
2

输出样例:

代码语言:javascript
复制
llo World!He

思路分析

在学习计算机的时候,我们经常讲到计算思维,就是说从计算机的视角去思考问题。

回到这道题,移动字符串,人的视角就是直接搬动,计算机不行,计算机的程序都是一步一步来的,要让计算机做事情,就必须把每一步怎么做告诉它,而且要讲的非常具体。

在人看来,字符串移动一次就是搬动一个字符,那么如何搬动一个字符,数组是连续存储的单元,要动一个的位置,就对所有人下手,于是我们先用一个变量先把第一个数组元素的值保存下来,然后,用一个循环将每一个的元素值往前推,完了之后,再让最后一个元素的值为先前第一个元素的值,思路是这样。

实际上操作起来时,由于字符串最后一个元素是字符串结束符\0,搬动时,它也会跑,因此我们要把它的位置挪回来。

AC代码

代码语言:javascript
复制
#include<stdio.h>
int main()
{
	char s[101],temp;
	int i,n;
	gets(s);
	scanf("%d",&n);
	while(n--)
	{
		temp=s[0];
		for(i=0;s[i];i++)
		s[i]=s[i+1];
		s[i--]='\0';
		s[i]=temp;
	}
	printf("%s",s);
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 输入格式:
  • 输出格式:
  • 输入样例:
  • 输出样例:
  • 思路分析
  • AC代码
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档