左旋(右旋)字符串

来源:互联网 发布:抽烟 知乎 编辑:程序博客网 时间:2024/05/16 18:33

实现将一个字符串左旋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;}
1 0
原创粉丝点击