实现一个函数,可以左旋字符串中的k个字符

来源:互联网 发布:windows api编程 编辑:程序博客网 时间:2024/05/16 00:54

假如一个字符串为 ABCDE,左旋一个字符就变成了BCDEA;我们可以用一个函数实现这个功能;

通过观察做选一个字符,我们可以发现数组的第一个元素变成了最后一个,第二个变成了第一个,第三个变成了第二个,依次类推,我们可以先把第一个元素用一个临时变量保存起来,依次替换,最后把第一元素传给最后一个。如果是左旋多个字符,用一个循环就okle .

#include <stdio.h>#include <stdlib.h>#include<assert.h>#include<string.h>char  *left_move(char *string,int n){assert(string);char *str = string;int len = strlen(str)-1;int i = 0;int j = 0;for (i=0; i < n; i++){char tem = str[0];//把第一个字符保存到临时变量for (j = 0; j < len; j++) {str[j] = str[j + 1];}str[len] = tem;}return str;}int main(){char arr[] = "ABCDE";int k = 0;printf("before:%s\n", arr);printf("请输入要左旋几个字符:");scanf("%d", &k);left_move(arr, k);printf("after:%s\n",arr);system("pause");return 0;}


1 1
原创粉丝点击