C語言之 左旋字串

2021-07-24 06:12:35 字數 933 閱讀 4937

如:abcde左旋一位是bcdea;左旋兩位是cdeab。

方法一:迴圈左移法。

先將第一次字元拿出,然後將後面的字元依次向左移1位,剛好最後乙個字元空出,把第乙個字元放入,當然這裡面考慮到這個字串的長度,多次操作可以用移的步數和字串的個數取%來計算。

#define _crt_secure_no_warnings

#include#include#include#includevoid left_str(char str, int len, int steps)

str[i - 1] = tmp; }}

int main()

方法二,

.字串的逆序,把乙個字串分成兩部分,然後分別對兩個字串進行逆序,最後整體逆序。

#define _crt_secure_no_warnings

#include#include#include#includevoid reveese_str(char*start,char*end)

}void left_str(char msg, int len, int steps)

int main()

方法三:雙倍字串。

建立乙個新的字串,將以前的字串拷貝。這種方法雖然高效,但需要開闢新記憶體,所以最後

將之前用malloc分配的空間還給程式或者是

作業系統

,也就是釋放了這塊記憶體,讓它重新得到自由。

#define _crt_secure_no_warnings

#include#include#include#includeint is_left_str(char str, int len, int steps)//abcabc

int main()

劍指Offer之左旋字串

題目描述 題目 字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個函式實現字串左旋轉操作的功能。比如,輸入字串 abcdefg 和數字2,該函式將返回左旋轉兩位得到的結果 cdefgab 注意 輸入的n表示第n個,顯然是從1開始計數的。public string reversele...

C語言左旋字串

問題 實現乙個函式,可以左旋字串中的k個字元。abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 方法一 思路 1 定義字串。2 需注意字串旋轉次數可為n次 正整數 如旋轉23次和旋轉3次的結果一樣 3 計算實際旋轉次數 4 寫內層迴圈一次左旋 5 加外層迴圈控制實際迴圈次數 inc...

C語言 字串左旋

問題 實現乙個函式,可以左旋字串中的k個字元。例如 abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 方法一 將第乙個字元複製乙份,然後將字串左移一位再將第乙個字元賦值給最後一位,要移動k個字元就迴圈k次。方法二 將字串分為兩部分,先將前k個字元逆置,再將後一部分字串逆置,最後將整...