题目:编写一个函数,把一个char组成的字符串循环右移n位。例如:原来是”abcdefghi”,如果n = 2,移位后应该是”hiabcdefg”。
实现代码:
#include<iostream>
#include<string>
#define max 100
using namespace std;
void fun(char a[],int n)
{
if(a==NULL)
return;
char temp[max];
int i=0;
int len=strlen(a);
char *str=a+len-n;
while((temp[i++]=*str++)!='\0')
{
//
}
for(int j=len-n-1;j>=0;j--)
{
a[j+n]=a[j];
}
for(int j=0;j<n;j++)
{
a[j]=temp[j];
}
a[len+1]='\0';
}
int main()
{
char a[max];
int n;
gets(a);
cin>>n;
fun(a,n);
cout<<a<<endl;
system("pause");
return 0;
}
原文地址:http://blog.csdn.net/lanzhihui_10086/article/details/40319727