题目描述
给定一个无重复字符的字符串 s 和这个字符串中的两个字符 s [i],s [j], 输出翻转 s [i]~s [j] 后的字符串。
输入描述
第一行一个整数 T,代表测试数据组数。 之后每组的第一行输入一个字符串 s,不包含空格,3<=lenth (s)<=500。 第二行输入两个字符 s[i],s[j] (0<=i<j<=lenth(s)-1)。
输出描述
一行,输出所得字符串。(每组输出之间需要换行,末尾不需要多余空格)
样例输入
2
abcde
b d
123ABCdef
2 d
样例输出
adcbe
1dCBA32ef
供参考
#include <stdio.h>
#include <string.h>
int main(void)
{
int T, i;
char s[500];
char s1, s2, s0;
char *a, *b;
printf("Please enter T: ");
scanf("%d", &T);
for (i = 0; i < T; i++)
{
scanf("%s\r%c %c", s, &s1, &s2);
// ret = char *strchr(const char *str, int c)
// 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。
// 返回值ret应为char指针
// 如果输入abcde和b d
a = strchr(s, s1); // 'bcde'
b = strchr(s, s2); // 'de'
// 交换b和d
s0 = a[0];
a[0] = b[0];
b[0] = s0;
puts(s);
}
return 0;
}