//1.实现一个函数,可以左旋字符串中的k个字符。
//ABCD左旋一个字符得到BCDA
//ABCD左旋两个字符得到CDAB
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int Round(char* arr,int k){
int len = strlen(arr);
char* tmp = (char*)calloc(len + 1, sizeof(char));
if (tmp == NULL){ //返回1时内存分配失败
return 1;
}
k %= len; // 把k比len长的地方去掉,因为长为len的转换len次和原来一样
int i;
for (i = 0; i < len - k; i++){
tmp[i] = arr[i + k];
}
for (; i < len; i++){
tmp[i] = arr[i + k - len];
}
for (i = 0; i < len; i++){
arr[i] = tmp[i];
}
free(tmp);
return 0;
}
int main(){
char arr[] = "ABCDEF";
int k = 2;
Round(arr,k);
puts(arr);
system("pause");
return 0;
}
C基础14 1.实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB
最新推荐文章于 2023-10-31 23:13:57 发布