c 旋轉字元

2021-08-18 23:54:26 字數 1925 閱讀 3097

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

abcd左旋乙個字元得到bcda

abcd左旋兩個字元得到cdab 

方法一:

將字串的第乙個元素賦給乙個變數temp;

將字串後面的元素依次向前挪一位;

如果左旋一次以上迴圈1,2步驟;

#define _crt_secure_no_warnings 1

#include#include#includevoid leftturn(char *a, int k)

a[len - 1] = temp;

i++; }}

int main()

執行如下:

方法二:

首先舉個例子 :abcd(假設左旋兩位)

1:首先逆置前兩位 ab----ba,得到bacd

2:齊次逆置後兩位cd----dc,   得到badc

3:最後整體逆置得到cdab;

所以整個程式需要呼叫三個左旋函式;

**如下:

#define _crt_secure_no_warnings 1

#include#include#includevoid reverse(char *x, char *y) //逆置函式

}void turnleft(char *a, int i)

int main()

執行如下:

2:判斷乙個字串是否為另外乙個字串旋轉之後的字串。

例如:給定s1 = aabcd和s2 = bcdaa,返回1,給定s1=abcd和s2=acbd,返回0.

aabcd左旋乙個字元得到abcda

aabcd左旋兩個字元得到bcdaa

aabcd右旋乙個字元得到daabc 

方法一:

由1題的方法一得出此題方法一:

#include#include#includeint is_equal(char *s1, char *s2) //判斷是否相等

s1[len-1] = temp;

if (strcmp(s1, s2) == 0)

i++;

} return 0;

}int main()

else

system("pause");

return 0;

}

執行如下:

方法二:

由1題的方法二得出此題的方法二:

**如下:

#define _crt_secure_no_warnings 1

#include#include#includevoid reverse(char *x, char *y)

}void leftturn(char *a, int i)

//判斷字串b是否是字串a左旋得到的

int is_turn(char *a, char *b)

} return 0;

}int main()

else

system("pause");

return 0;

}

執行如下:

C 左旋轉字串

問題描述 定義字串的左旋轉操作 把字串前面的若干個字元移動到字串的尾部,如把字串 abcd 左旋轉 2 位得到字串 cdab 請實現字串左旋轉的函式。演算法分析 1.暴力移位法 a 把最後乙個字元取出並儲存起來,然後z最後乙個字元前面的所有字元後移,b 儲存的最後乙個字元存放到第乙個字元的位置,c ...

C語言旋轉字元(詳解)(演算法)

abcdef 輸出旋轉之後的字元我要旋轉2個字元 cdefab 二 演算法二,三步翻轉 結果 翻轉3個字元 void left move char arr,int k 3最後乙個空間的元素,arr len 1 tmp char tmp arr 拿到第乙個元素 每次迴圈拿到第乙個元素,到結束最後往後放...

C語言之字串旋轉

字串在語言中也是非常重要的存在,所以對於字串也有非常多的知識,而今天我就要和大家分享的是關於字串的一些問題 具體問題如下 實現乙個函式,可以左旋字串中的k個字元。abcd左旋乙個字元得到bcda abcd左旋兩個字元得到cdab 思路 其實這個問題我感覺就比較容易了,就是將乙個陣列中字元的位置按順序...