C語言左旋字串

2021-08-31 13:53:18 字數 1318 閱讀 9347

問題:

實現乙個函式,可以左旋字串中的k個字元。

abcd左旋乙個字元得到bcda

abcd左旋兩個字元得到cdab

方法一:

思路:(1)定義字串。

(2)需注意字串旋轉次數可為n次(正整數)。(如旋轉23次和旋轉3次的結果一樣)

(3)計算實際旋轉次數

(4)寫內層迴圈一次左旋

(5)加外層迴圈控制實際迴圈次數

#include

#include

void

leftmove

(char array,

int len,

int n)

if(j = len -1)

}}intmain()

方法二:(優選,單層迴圈,時間複雜度為o(n))

思路:(1)從輸入要翻轉字元個數下標分為陣列的前半部分和後半部分

(2)分別對前半部分、後半部分、整體進行翻轉

#include

#include

#include

void

math

(char array,

int i,

int j)

}void

leftmove

(char array,

int len,

int n)

intmain()

指標方法實現:
#include

#include

#include

void

math

(char

* a,

char

* p)

}void

leftmove

(char

*a,int len,

int n)

intmain()

方法三:(窮舉法)

(缺點:需開闢空間,時間複雜度較高)

思路:(1)利用malloc函式開闢空間

(2)利用strcpy拷貝陣列a

(3)利用strcat拼接陣列,形成雙重陣列

(4)根據實際旋轉字元個數選擇一段字串輸出

#include

#include

#include

void

leftmove

(char

*a,int len,

int n)

intmain()

C語言 字串左旋

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

C語言 左旋字串

實現乙個函式,可以左旋字串中的k個字元 方法一 開闢另乙個陣列,先把第k 1後面的字元寫入這個陣列中,再把要左旋的k個字元寫進去 實現如下 include include include void left relvove char str,char arr,int k pcur str 把第k 1...

C語言之 左旋字串

如 abcde左旋一位是bcdea 左旋兩位是cdeab。方法一 迴圈左移法。先將第一次字元拿出,然後將後面的字元依次向左移1位,剛好最後乙個字元空出,把第乙個字元放入,當然這裡面考慮到這個字串的長度,多次操作可以用移的步數和字串的個數取 來計算。define crt secure no warni...