输入一个字符串和一个非负整数N,要求将字符串循环左移N次。
输入格式:
输入在第1行中给出一个不超过100个字符长度的、以回车结束的非空字符串;第2行给出非负整数N。
输出格式:
在一行中输出循环左移N次后的字符串。
输入样例:
Hello World!
2
输出样例:
llo World!He
在这里插入代码片
1. #include<stdio.h>
2. int main()
3. { char a[101],b[101];
4. int n,i,j,k;
5. gets(a);
6. scanf("%d",&n);
7. while(a[i]!='\0')
8. i++; \\计算字符数量。
if(n>=0&&n<=i)
{
for(j=n;j<i;j++)
printf("%c",a[j]); \\先从后i-n位开始输出
for(j=0;j<n;j++)
printf("%c",a[j]); \\刚输出完后面几项,现在要输出前面的n项;
}
else if(n>=0&&n>i) \\如果移的位数比字符数还多
{
k=n%i; \\移动i次是不变的,所以只要取余便是正在移动的位数;
for(j=k;j<i;j++)
printf("%c",a[j]);
for(j=0;j<k;j++)
printf("%c",a[j]);
}
return 0;
} \\点个赞在走吧!