PTA移动字母

PTA移动字母

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

函数接口定义:

void Shift( char s[] );

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

裁判测试程序样例:

#include 
#include 

#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

程序代码:

void Shift( char s[] )
{
    char str1[4],str2[MAXS];
    
	strncpy(str1,s,3);   //将前三个字符复制到str1中
	strcpy(str2,s+3);    //将剩余的字符复制到str2中
	strcat(str2,str1);   //连接
	strcpy(s,str2);      //复制到s中
	
}

注意:
1.可以不函数strncpy()
使用以下代码同样可以实现该功能:

for(int i=0 ; i<3 ; i++)
        str1[i] = s[i];
    str1[3] = '\0';

2.str2[MAXS]不能够用str2[10]代替,因为超过10的字符串结果会与预期所得不同。

你可能感兴趣的:(pta,字符串,c语言)