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

2021-08-10 14:43:11 字數 1061 閱讀 1551

abcd左旋乙個字元得到bcda

abcd左旋兩個字元得到cdab

以下通過三種方法來實現:

//方法一

//將字串除第乙個字元外的所有字元左移,再將第乙個字元放置最後一位,操作n次

static leftmove(char *str, int len)

str[i] = tmp;

}void left_reverse(char *str, int len, int n)

}

//方法二

//以n為界,將字串分成兩部分,先分別逆置,再整體逆置

static void reverse_string(char *start, char *end)

}void left_reverse1( char *str,int len, int n)

//方法三

//將兩字串拼接在一起,利用子串查詢找到左旋後的字串

void left_reverse2(char *str, int len, int n)

測試用例:

int main()

要判斷乙個字串是否為另乙個字串左旋後的字串,我們採用剛剛**三的方法,**如下:

#include 

#include

#include

int find_leftmove(char *str, char *substr)

int newsize = len1 * 2 + 1;

char *mem = (char *)malloc(sizeof(char)*newsize);

strcpy(mem, str);

strcat(mem, str);

if (strstr(mem, substr))

free(mem);

}int main()

else

return

0;}

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

c語言 實現乙個函式,可以左旋字串中的k個字元。例如 abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 思路一 常規思路很簡單,很容易想出來,以左旋乙個字元為例,建立乙個變數tmp將字串的第乙個字元賦給tmp,然後將字串所有的字元往前移一位比如移動之前是abcd,移動之後就是bcd...

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

實現乙個函式,可以左旋字串中的k個字元 例如 aabcd左旋乙個字元得到abcda aabcd左旋兩個字元得到bcdaa 方法 1 採用迴圈移位,對需要旋轉的k個字元按順序進行旋轉,先將要旋轉的乙個字元儲存起來,將後面的往前挪動一位,再將儲存起來的這個字元賦給最後一位,這樣連續迴圈k次,就可以完成了...

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

實現乙個函式,可以左旋字串中的k個字元。aabcd左旋乙個字元得到abcda aabcd左旋兩個字元得到bcdaa 1 可以通過字串互換,每左旋一次,字串第乙個移到最後乙個,其餘字元整體向前移動一位。如下 include include includevoid reverse char str,in...