實現一個函式,可以左旋字串中的k個字元。 ABCD左旋一個字元得到BCDA ABCD左旋兩個字元得到CDAB
阿新 • • 發佈:2019-01-23
這個題的思路其實並不是很難理解,左旋字串,可以先將第一個字元和最後一個字元交換,然後進行一個迴圈,就可以解決這個問題了;具體程式碼如下:
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<Assert.h> void levo(char *pstr, int SZ,int key) { assert(pstr != NULL); int i = 0; int j = 0; for (i = 0; i < key; i++) { char tmp = pstr[0]; for (j = 0; j < SZ - 1; j++) { pstr[j] = pstr[j + 1]; } pstr[SZ - 1] = tmp; } } int main() { char str[] = "ABCDEFGH"; int key = 0; int SZ = sizeof(str) / sizeof(str[0])-1; printf("請輸入你要旋轉字元的個數"); scanf("%d", &key); levo(str,SZ,key); printf("%s", str); return 0; }