现在的位置: 主页 > 主打产品 > 文章列表

字符串的左旋转

作者:程力专用汽车股份有限公司 来源:www.dfclxwc.com 未知发布时间:2017-09-03 12:20:27
字符串的左旋转

函数,可以左旋字符串k个字符。例如:

abcdef左旋2得到cdefab

方法一:暴力旋转法

#include<stdio.h> #include<string.h> void left_remove(char *arr,int n) { int i=0; int j=0; char ch=0; int len=strlen(arr); for(i=0;i<n;i++) //左旋的个数 { ch=arr[0]; //保存第一个字符 for(j=0;j<len-1;j++) { arr[j]=arr[j+1]; } arr[len-1]=ch; } } int main() { char arr[]="abcdef"; //abcdef-->bcdefa-->cdefab int n=0; scanf("%d",&n); left_remove(arr,n); printf("%s\n",arr); return 0; }

方法一:三步旋转法

初始状态:

abcdef

第一步:翻转a,b

bacdef

第二步:翻转c,d,e,f

bafedc

第三步:全部翻转

cdefab

#include<stdio.h> #include<string.h> void change(char *left,char *right) { int temp=0; while(left<right) { temp=*left; *left=*right; *right=temp; left++; right--; } } void left_remove(char *p,int n) { //abcdef int len=strlen(p); change(p,p+n-1); //bacdef change(p+n,p+len-1); //bafedc change(p,p+len-1); //cdefab } int main() { char arr[]="abcdef"; int n=0; scanf("%d",&n); left_remove(arr,n); printf("%s\n",arr); return 0; }

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网站优化 http://www.feimao666.com

上一篇:免费CDN汇总 下一篇:最后一页