您的位置:首页 > 其它

左旋(右旋)字符串

2016-05-08 21:37 344 查看
实现将一个字符串左旋k个;

例abcdefg左旋3个得到defgabc;

#include<stdio.h>
#include<assert.h>

char* turn(char *str, int k)//逆序函数
{
char *pleft = str;
char *pright = str + k - 1;
assert(str);
while (pleft < pright)
{
char *tmp;
tmp = *pleft;
*pleft = *(pright);
*(pright) = tmp;

pleft++;
pright--;
}
return str;
}

void lefturn(char *str, int k)
{
turn(str, k);//先逆序前k个 abcdefg -> dcba efg
turn(str + k, strlen(str) - k);//再逆序后面的 dcba efg ->dcba gfe
turn(str, strlen(str));//字符串全部逆序 dcba gfe->efg abcd
}

int main()
{
char str[] = { "abcdefg" };
lefturn(str, 3);
printf("%s\n", str);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: