void loopMove(char* str,int n)//使字符串循環右移n位
{
int i = 0;
char *temp = NULL;
int strLen = 0;
char *head = str;//指向字符串頭
while (*str++);
strLen = str-head-1;//計算字符串長度
n = n%strLen;//計算字符串尾部移到頭部的字符個數
temp = (char*)malloc(n);//分配內存
for (i = 0;i<n;i++)
{
temp[i] = head[strLen-n+i];//臨時存放尾部移到頭部的字符
}
for (i = strLen-1;i>=n;i--)
{
head[i] = head[i-n];
}
for (i=0;i<n;i++)
{
head[i] = temp[i];//從臨時內存區複製尾部字符
}
free(temp);
}
字符串循環右移n位
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.