6-9 移动字母

该博客介绍了如何使用C语言编写一个函数,将输入字符串的前三个字符移到最后。通过示例代码展示了具体实现,包括定义函数Shift、获取字符串的函数GetString以及裁判测试程序。该问题涉及字符串操作和数组处理,适合C语言初学者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6-9 移动字母

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

函数接口定义:

void Shift( char s[] );

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

裁判测试程序样例:

#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

C语言解析:

void Shift(char s[])
{
    if (strlen(s) == 3)return;
    char a = s[0], b = s[1], c = s[2];
    int i = 0;
    for (; i < strlen(s) - 3; i++) { s[i] = s[i + 3]; }
    s[i++] = a; s[i++] = b; s[i++] = c;
}