字符串逆序
1、 题目内容
Description
给你一个字符串,请将其第K个字符开始的长度为L的子串进行逆序。
输入
有多组样例,第一行是一个整数,表示有多少个样例。每个样例占两行,第一行是个字符串,字符串全部由英文小写字符组成,长度不超过200。第二行是两个整数K和L,K从1开始计数,K+L-1不会超过字符串长度。
输出
每行输出一个字符串逆序以后的字符串结果。
Sample Input
2
abcabc
1 2
abcabc
2 5
Sample Output
bacabc
acbacb
2、 题目分析
这个题目要求我们对指定的序列进行逆序,我们采取分段的方式进行输出就好了,首先将第k个字符前得字符正常输出,然后将从第K个字符开始的长度为L的子串进行逆序输出,然后再正常顺序输出剩余的字符,就可以了。
3、 参考代码
#include<stdio.h>
#include<string.h>
int main()
{
int t; //样例个数
scanf("%d",&t);
while(t--)
{
int k,l,m,i;
char str[202];
scanf(" %s",str); //读入字符串
scanf("%d %d",&k,&l);
m=strlen(str);
for(i=0;i<k-1;i++) //先将第k个字符前得字符输出
{
printf("%c",str[i]);
}
for(i=k+l-2;i>=k-1;i--) //将从第k个字符开始的l个字符逆序输出
{
printf("%c",str[i]);
}
for(i=k+l-1;i<m;i++) //将k+l-1个字符后面的字符输出
{
printf("%c",str[i]);
}
printf("\n");
}
return 0;
}