請實現字串右迴圈移位函式,比如:「abcdefghi」迴圈右移2位就是「hiabcdefg」.
函式原型:void rightloopmove(char *pstr, unsignedshort steps)
函式引數說明:
pstr: point to a 『\0』 terminated string
steps: the rotate shift numbers
第二種方法,主要用了庫函式#include#include#include#includevoid rightloopmove(char *pstr, unsigned short steps)
for (i = 0; i < steps; i++) //將右移的部分存放進str裡
for (i = len - steps; i>0;i--) //剩餘的部分向後移steps位
for (i = 0; i < steps; i++) //將str的內容放到字串前面騰出的位
free(str);
str = null;
}int main()
#define _crt_secure_no_warnings 1
#include#include#include#include#define max_len 20
void rightloopmove(char *pstr, unsigned short steps)
; int n = strlen(pstr)-steps;
strcpy(arr,pstr+n); //需要移位的字元拷給arr
strcpy(arr + steps, pstr); //再把剩下的字元拷給arr
*(arr + strlen(pstr)) = '\0'; //上一步會多拷steps個字元,加\0的同時也解決了這個問題。
strcpy(pstr, arr); //arr裡的字元拷給源串
}int main()
可以用strcpy意味著此處也可以用memcpy,這裡不再提供**。
字串右迴圈移位
思路 給定乙個字串 abcdefghi 右移一位則是先把最後一位的i保留起來,然後其他位按位從右向左依次往右挪一位,留下最開始那一位放入i即可。這裡就需要乙個tmp來儲存i,要找到i,也需要知道字串長度len,用strlen來計算len找到i,然後其餘元素依次右移,再把之前保留的i放入最開始位置。這...
實現字串右迴圈移位函式
abcdef 迴圈右移3位為 defabc 第一種方法 假設迴圈右移steps,迴圈右移一次的情況 然後按此操作迴圈steps次 實現 void rightloopmove char pstr,unsigned short steps pstr 0 temp 把最後一位給第一位 第二種方法 三步旋轉...
實現字串右迴圈移位函式
題目 請實現字串右迴圈移位函式,比如 abcdefghi 迴圈右移2位就是 hiabcdefg 函式原型 void rightloopmove char pstr,unsigned short steps 函式引數說明 pstr point to a 0 terminated string step...