字符串循環右移n位


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);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章