7-31 字符串循环左移 (20 分)

简介: 输入一个字符串和一个非负整数N,要求将字符串循环左移N次。

输入一个字符串和一个非负整数N,要求将字符串循环左移N次。


输入格式:


输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。


输出格式:


在一行中输出循环左移N次后的字符串。


输入样例:


1. Hello World!
2. 2

结尾无空行


输出样例:


llo World!He

结尾无空行


难点有二:

1.字符的移动,我们可以采用冒泡的思路进行移动

2.最难的一点算是k>字符串难度了,我采用的是回到原点的代码程序。

#include <stdio.h>
#include <string.h>
int main() {
  char str[101], t;
  gets(str);
  int k;
  scanf("%d", &k);
  int len = strlen(str);
  for (int i = 0; i < k; i++) {
    if (i == len) {//若len<k,回到原点,并且让k-len;
      k -= len;
      i = 0;
    }
    for (int j = 0; j < len - 1; j++) {//移动字符
      t = str[j];
      str[j] = str[j + 1];
      str[j + 1] = t;
    }
  }
  for (int i = 0; i < len; i++)//输出字符
    printf("%c", str[i]);
  return 0;
}

好了,题目就到这里了。

相关文章
|
6月前
循环迭代判断\找质数——以每行8个的形式输出100-999内的质数
循环迭代判断\找质数——以每行8个的形式输出100-999内的质数
76 5
|
6月前
|
数据安全/隐私保护
微机原理||十进制输入、数组中负数个数、字符串比较程序
微机原理||十进制输入、数组中负数个数、字符串比较程序
7-9 字符串循环左移分数
输入一个字符串和一个非负整数N,要求将字符串循环左移N次。
73 0
|
7月前
LeetCode题 338比特位计数,20有效的括号,415字符串相加
LeetCode题 338比特位计数,20有效的括号,415字符串相加
66 0
|
7月前
|
资源调度
daimayuan 三进制循环(树形dp)
daimayuan 三进制循环(树形dp)
45 0
|
C语言
乘法口诀标的打印及解释
打印乘法口诀表可以说是c语言中一个很经典的一个简单程序了。 打印乘法口诀表的第一反应可能会是很难,怎么打印出这么多相乘的数呢。但是仔细想分析和考虑的话,其实很简单。那么我来说一下打印乘法口诀表的思路。
82 0
【每日一题Day41】生成交替二进制字符串的最小操作数 | 模拟 位运算
思路:长度一定的交替二进制字符串有两种可能性,以字符0开头的0101字符串和以字符1开头的1010字符串,因此只需要将字符串s与这两种字符串进行比较,记录不相同的字符个数,最后返回较小值即可
100 0
【每日一题Day41】生成交替二进制字符串的最小操作数 | 模拟 位运算
|
人工智能
【scanf】将一串整数,依次左移一个数,且原来的第一个数移到最后,原来多执行的一步在这里!
【scanf】将一串整数,依次左移一个数,且原来的第一个数移到最后,原来多执行的一步在这里!
86 0
【scanf】将一串整数,依次左移一个数,且原来的第一个数移到最后,原来多执行的一步在这里!
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
159 0
复习C部分:1.看代码求值题 2.写三个整数代码从大到小输出 3.打印1~100中所有3的倍数 4.给定两个数,求最大公约数(递减法,辗转相除法)
|
算法
算法 | 妙用递归(顺序&逆序)打印一个数的每一位
- 程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用 - 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问-题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量 - 递归的能力在于用有限的语句来定义对象的无限集合 - 一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回
266 0
算法 | 妙用递归(顺序&逆序)打印一个数的每一位