#include <string.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#define MAX_LEN 50
void rotate(char *,int);
void rotate1(char *,int);
void reverse(char *,int,int);
int main(int argc,char *argv)
{
time_t s_time= 0,e_time = 0;
charstr[MAX_LEN] = "abcoooooooooooooooooxyz";
int i;
intcount_time = 0;
/* str[0]= 'a';
str[1] = 'b';
str[2] = 'c';
str[MAX_LEN-1]= 'W';
str[MAX_LEN-2]= 'W';
str[MAX_LEN-3]= 'W';*/
time(&s_time);
rotate1(str,8);
time(&e_time);
count_time =abs(e_time - s_time);
printf("timecosted:%ds\n",count_time);
puts(str);
return 0;
}
void rotate(char str[],int n)
{
int i,j;
chartmp_str[MAX_LEN];
for (i = 0;i< n; i++)
{
tmp_str[i]= str[i];
}
for (j = 0;i< strlen(str);i++,j++)
{
str[j] =str[i];
}
for (i = 0; i< n;i++)
{
str[strlen(str)-n+i]= tmp_str[i];
}
}
void rotate1(char str[],int n)
{
reverse(str,0,n-1);
// puts(str);
// printf("n= %d strlen = %d\n",n,strlen(str)-1);
reverse(str,n,strlen(str)-1);
// puts(str);
reverse(str,0,strlen(str)-1);
// puts(str);
}
void reverse(char str[],int s,int e)
{
int i;
char tmp;
for (i = 0; i<= (e-s)/2; i++)
{
tmp =str[s+i];
str[s+i] =str[e-i];
str[e-i] = tmp;
}
}