C語言 字串右迴圈移位

2021-07-12 04:05:35 字數 1088 閱讀 5242

請實現字串右迴圈移位函式,比如:「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...