编写一个函数,函数的功能是移动字符串中的内容。移动的规则如下:把第1到第m个字符,平移到字符串的最后;再把第m+1到最后的字符移动到字符串的前部。变换后的字符串存入b数组中,如果m不在字符串长度范围,原样存入b数组中。
函数接口定义:
在这里描述函数接口。例如: void fun(char *pstr,int n,char *b);
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如: #include <stdio.h> #include <string.h> void fun(char *pstr,int n,char *b); int main() { char str[20],b[20]; int m; gets(str); scanf("%d",&m); fun(str,m,b); printf("%s",b); return 0; } /* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:
abcefg
2
输出样例:
在这里给出相应的输出。例如:
cefgab
void fun(char *pstr,int n,char *b)
{
if(strlen(pstr)<n)
{
strcpy(b,pstr);
return;
}
int i=0;
while(*(pstr+n+i)!='\0')
{
*b=*(pstr+n+i);
i++;
b++;
}
i=0;
while(i<n)
{
*b=*(pstr+i);
i++;
b++;
}
*b='\0';
}
可以分两步走:第一步先将后几位赋过去(这里是字符串,复制要用到函数),第二步再从第一位赋过去。分别用两个循环,注意还有一个特殊情况就是数字过大,原样复制(可放在最前先判断)。