7-31 字符串循环左移(20 分)

7-31 字符串循环左移(20 分)

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

输入格式:

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

输出格式:

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

输入样例:

1
2
Hello World!
2

输出样例:

1
llo World!He
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char str[101];
int i = 0;
int c;
while((c=getchar()) != '\n'){// 记录字符串
str[i] = (char) c;
i++;
}
str[i] = '\0';
char *start;
start = &str[0];

int sp;
scanf("%d", &sp);
char sa[101]; //生成新的字符串

sp = sp%(strlen(str));
strcpy(sa, start+sp);
*(start + sp) = '\0';
strcat(sa, start);
printf("%s\n", sa);
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×