char 组成的字符串循环右移N位

来源:互联网 发布:淘宝老顾客回购权重 编辑:程序博客网 时间:2024/05/16 06:17

写一个函数,把char组成的字符串循环右移

 

#include<iostream>using namespace std;void LoopMove1(char *str,int steps)//方法一{int n=strlen(str)-steps;char *temp;temp=(char *)malloc(sizeof(char)*(strlen(str)+1));strcpy(temp,str+n);strcpy(temp+steps,str);*(temp+strlen(str))='\0';strcpy(str,temp);}void LoopMove2(char *str,int steps)//方法二{int n=strlen(str)-steps;char *temp;temp=(char *)malloc(sizeof(char)*(strlen(str)+1));memcpy(temp,str+n,steps);memcpy(temp+steps,str,n);memcpy(str,temp,strlen(str));}int main(int argc,char *argv[]){ int steps;char *str;int i;char ch;str=(char *)malloc(sizeof(char));cout<<"输入字符串:"<<endl;cin>>ch;for (i=1;ch!='\n';i++){str[i-1]=ch;str=(char*)realloc(str,sizeof(char)*(i+1));ch=getchar();}str[i-1]='\0';cout<<"输入 N : ";cin>>steps;cout<<str <<"循环右移"<<steps<<"位 "<<endl;LoopMove1(str,steps);cout<<str<<endl;cout<<str <<"循环右移"<<steps<<"位 "<<endl;LoopMove2(str,steps);cout<<str<<endl;return 0;}

原创粉丝点击