實作一個函數,可以左旋字元串中的k個字元。
例: ABCD左旋一個字元得到BCDA
ABCD左旋兩個字元得到CDAB
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* ZuoXuan(char *p, int n)
{
char *p1 = p;//建立一個新的指針變量
int len = strlen(p1) - 1;
int i = 0;
int j = 0;
for (i = 0; i < n; ++i)
{
char tmp = p1[0];//建立一個臨時變量并把第一個字元指派到tmp中
for (j = 0; j < len; ++j)
{
p1[j] = p1[j + 1];//字元依次前進一個位置
}
p1[len] = tmp;//将臨時變量指派到最後一個位置
}
return p1;
}
int main()
{
//1.實作一個函數,可以左旋字元串中的k個字元。
//ABCD左旋一個字元得到BCDA
//ABCD左旋兩個字元得到CDAB
int k = 0;
char a[] = "ABCD";
printf("字元為%s\n", a);
printf("請輸入左旋幾個字元?(輸入的數字小于4)\n");
scanf("%d", &k);
printf("\n");
ZuoXuan(a, k);
printf("%s\n", a);
system("pause");
return 0;
}
需要特别注意的是:在給函數傳參的過程中,函數的類型是:
char* ZuoXuan(char *p, int n)