您的位置:首页 > 其它

实现一个函数,可以左旋字符串中的k个字符。 ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB

2017-05-06 20:37 453 查看
这个题的思路其实并不是很难理解,左旋字符串,可以先将第一个字符和最后一个字符交换,然后进行一个循环,就可以解决这个问题了;具体代码如下:
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐