编程题
请编写函数FUN,该函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第M个字符,平移到字符串的最后,把第M+1到最后的字符移到字符串的前部。
例如,字符串原有的内容为ABCDEFGHIJK,M的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include
#include
#defineN80
voidfun(char*w,intm)
{
}
main() www.Examda.CoM
{
chara[N]="ABCDEFGHIJK";
intm;
FILE*out;
printf("Theoriginalstring:\n");
puts(a);
printf("\n\nEnterm:");
scanf("%d",&m);
fun(a,m);
printf("\nThestringaftermoving:\n");
puts(a);
printf("\n\n");
out=fopen("out.dat","w");
fun(a,strlen(a)-m);
fun(a,3);
fprintf(out,"%s",a);
fclose(out);
}
答案是:
voidfun(char*w,intm)
{
charb[N];
intI,j=0;
for(i=0;i
{
b[j]=w[i];
j++;
}
for(i=0;i
w[i]=w[i+m];
for(j=0;j
{
w[i]=b[j];
i++;
}
w[i]=’\0’;
}
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |