练习8-8 移动字母(10 分)

练习8-8 移动字母(10 分)

本题要求编写函数,将输入字符串的前3个字符移到最后。

函数接口定义:

void Shift( char s[] );
其中char s[]是用户传入的字符串,题目保证其长度不小于3;函数Shift须将按照要求变换后的字符串仍然存在s[]里。

裁判测试程序样例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <string.h>

#define MAXS 10

void Shift( char s[] );

void GetString( char s[] ); /* 实现细节在此不表 */

int main()
{
char s[MAXS];

GetString(s);
Shift(s);
printf("%s\n", s);

return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

abcdef

输出样例:

defabc

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <string.h>

#define MAXS 10

void Shift( char s[] );

void GetString( char s[] ); /* 实现细节在此不表 */

int main()
{
char s[MAXS];

GetString(s);
Shift(s);
printf("%s\n", s);

return 0;
}

void GetString(char s[]){
gets(s);
}

void Shift(char s[])
{
int i, count;
char str[5];
for (i=0; i<3; i++)
str[i] = s[i];
for (i=0; s[i+3] != '\0'; i++)
s[i] = s[i+3];
count = i;
for (i=0; i<3;i++)
{
s[count] = str[i];
count++;
}
}
Your browser is out-of-date!

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

×