题目
输入一个字符串和一个非负整数 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 N−1 个即可。
完整代码
#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;
}