标题:有时候我们需要将一段文字移动往前或者往后移动一段距离。例如,想将 theq ...
只看楼主
wangjx
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2020-5-22
结帖率:0
已结贴  问题点数:20 回复次数:1 
有时候我们需要将一段文字移动往前或者往后移动一段距离。例如,想将 thequickbrownfoxjumpsoveralazydog 中的lazydog移动
#include <stdio.h>
/* 局部翻转一个字符数组s,从下标start到下标end */
void part_reverse(char s[], int start, int end)
{
  int temp;
  for (; start < end; ++start, --end)
  {
    temp = s[start];
    s[start] = s[end];
    s[end] = temp;
  }
}

/* 将长度为n的字符数组的前i个字符后移 */
void rotate(char s[], int n, int i) {
  /* 你的代码<开始> */

  /* 你的代码<结束> */
}

int main() {
  char test_string1[] = "abcdef";
  char test_string2[] = "thequickbrownfoxjumpsoveralazydog";
  rotate(test_string1, 6, 3);
  rotate(test_string2, 33, 26);
  printf("%s\n", test_string1);
  printf("%s\n", test_string2);
  return 0;
}
搜索更多相关主题的帖子: char int 移动 start end 
2020-05-22 14:28
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
烂代码,又没把需求说完整。
瞎猜猜,
    part_reverse( s, 0, i-1 );
    part_reverse( s, i, n-1 );
    part_reverse( s, 0, n-1 );
2020-05-22 16:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501744-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.538563 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved