左旋字符串K个字符

实现一个函数,可以左旋字符串中的k个字符。
例如:
ABCD左旋一个字符得到BCDA
ABCD左旋两个字符得到CDAB
思路就是把字符串复制一遍,就有两个一模一样的连续字符串,无论左旋多少个,都属于复制过后的这个字符串里面的一部分,所以只需要截取出来就好了。

//实现一个函数,可以左旋字符串中的k个字符。
#include<stdio.h>
void Rotateleft(char* src, int n,int i){
	char tmp[256] = { 0 };
	char s[256] = { 0 };
	// 使src在tmp 里来两遍
	strcpy(tmp, src);//copy函数
	strcat(tmp, src);//stract 把一个加在了前一个字符的后面
	strncpy(s,tmp+i, n);
	//strncpy(q,p,16)就是C语言中专用的截取字符串函数。
	//q是我们把截取的字符串存储到里面。
    //p是我们即将截取的字符串。
    //16是我们从头开始过后的多少位。
	printf("%s\n",s);
}
void main()
{
	char src[] = "ABCD";
	//AABCDAABCD
	int n=sizeof(src)/sizeof(src[0]);
	int i;
	printf("左移几个字符:");
	scanf("%d", &i);
	Rotateleft(src, n-1,i);
}

这里我们用到了三个库函数
strcpy(tmp, src);//copy函数
strcat(tmp, src);//stract 把一个加在了前一个字符的后面
strncpy(s,tmp+i, n);
//strncpy(q,p,16)就是C语言中专用的截取字符串函数。
//q是我们把截取的字符串存储到里面。
//p是我们即将截取的字符串。
//16是我们从头开始过后的多少位

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值