编程题 7-31 字符串循环左移【PAT】

编程练习题目集目录

题目

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

输入格式

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

输出格式

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

输入样例

Hello World!
2

输出样例

llo World!He

题解

解题思路

  首先输入一串字符串,然后输入字符串循环左移次数 N N N,然后判断左移次数是否大于字符串长度,如果大于就取余;如果不大就从第 N N N 个字符开始输出,直到最后一个,然后再从原字符串的第一个字符开始输出到第 N − 1 N-1 N1 个即可。

完整代码

#include<iostream>
using namespace std;

int main(void)
{
    
    
    char s,str[105];
    int i = 0, count = 0, flag = 0, N;
    cout << "请入一个字符串:";                 // 提交时注释此行
    while ((s = getchar()) != '\n')		      // 读入字符串
    {
    
    
        str[i++] = s;
        count++;
    }
    cout << "请输入一个非负整数:";             // 提交时注释此行
    cin >> N;
    if (N > count)						      // N大于长度的情况
        N %= count;
    for (i = N; i < count; i++)
        cout << str[i];
    for (i = 0; i < N; i++)
        cout << str[i];
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41918107/article/details/143199498