/*题目描述:给你一个字符串"abcdefg",循环左移两位得到"cdefgab",循环右移两位得到"fgabcde" 输入:多组测试数据,每组一行,第一个是int范围内的整数n,表示要右移的位数,如果n是负数则表示要左移。接着后面是一个串长小于10000000的字符串。最后遇到EOF标志的时候结束。 输出:输出移位后的字符串 样例输入:2 abcdefg-2 abcdefg 样例输出:fgabcdecdefgab 难度:for beginner*/ #include <stdio.h>#include <string.h>#define MAX 10000000 char ch[MAX];char *point; int main(){ int n; while (scanf("%d %s",&n,ch)!=EOF) { point=ch; //getchar(); if(n<0) { n=(-1*n)%strlen(ch); point+=n; printf("%s",point); *point='\0'; printf("%s\n",ch); } else { n=n%strlen(ch); while (*(point+n)) { point++; } printf("%s",point); *point='\0'; while (point!=ch) { point--; } printf("%s\n",point); } } return 0; }

评论