最近在别的书上找到一题:题目内容:
输入一个字符串和一个非负整数N,要求将字符串循环右移N次。
输入格式:
输入在第1行中给出一个字符串,以'#'表示结束,‘#’不是字符串的一部分,字符串的长度未知,但至少有一个字符;输入的第2行给出非负整数N。
输出格式:
在一行中输出循环右移N次后的字符串。
输入样例:
Hello World!#
2
输出样例:
d!Hello Worl
- #include <stdio.h>
- #include <string.h>
- int main(){
- char str[10000];
- gets(str);
- printf("%d\n", strlen(str));
- char *head, *p, *t;
- head = p = str;
- int number;
- scanf("%d", &number);
- t = p = p + (strlen(str) - number - 1);
-
- while (*p != '#'){
- printf("%c", *p);
- p++;
- }
- while (head != t){
- printf("%c", *head);
- head++;
- }
-
- return 0;
- }
复制代码
我总感觉做的有点麻烦,大家给看看有没有什么优化的地方?或者你们有什么思路 |
|