# include <stdio.h>
# include <string.h>
# include <assert.h>
/*
char *left_rorate(char *str,int n)
{
int i = 0;
int j = 0;
char tmp = str[0];
int len = strlen(str);
assert(str);
for (i = 0;i < n; i++)
{
tmp = str[0];
for (j = 0;j < len-1; j++)
{
str[j] = str[j+1];
}
str[j] = tmp;
}
return str;
}
*/
void reverse(char *pstart,char *pend)
{
char tmp = *pstart;
assert(pstart);
assert(pend);
while (pstart < pend)
{
tmp = *pstart;
*pstart = *pend;
*pend = tmp;
pstart++;
pend--;
}
}
char *left_rorate1(char *str,int n)
{
int len = strlen(str);
assert(str);
reverse(str,str+n-1);
reverse(str+n,str+len-1);
reverse(str,str+len-1);
return str;
}
int main()
{
char arr[] = "ABCDEF";
left_rorate1(arr,2);
printf("%s\n",arr);
return 0;
}
旋轉字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.