c语言:输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符后面
时间: 2024-05-09 18:16:33 浏览: 146
去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符
下面是一个简单的 C 语言程序,可以实现你的需求:
```c
#include <stdio.h>
#include <string.h>
int main() {
char a[100], b[100];
char max_char, min_char;
int i, j, max_pos, min_pos;
printf("请输入字符串 a:");
scanf("%s", a);
printf("请输入字符串 b:");
scanf("%s", b);
// 找到 b 中最大的字符和 a 中最小的字符
max_char = b[0];
for (i = 1; i < strlen(b); i++) {
if (b[i] > max_char) {
max_char = b[i];
}
}
min_char = a[0];
for (i = 1; i < strlen(a); i++) {
if (a[i] < min_char) {
min_char = a[i];
}
}
// 找到最大字符和最小字符在 a 和 b 中的位置
max_pos = -1;
for (i = 0; i < strlen(b); i++) {
if (b[i] == max_char) {
max_pos = i;
break;
}
}
min_pos = -1;
for (i = 0; i < strlen(a); i++) {
if (a[i] == min_char) {
min_pos = i;
break;
}
}
// 将最大字符插入到最小字符后面
if (max_pos != -1 && min_pos != -1) {
for (i = strlen(a); i > min_pos + 1; i--) {
a[i] = a[i - 1];
}
a[min_pos + 1] = max_char;
printf("插入后的字符串为:%s\n", a);
} else {
printf("未找到最大或最小字符\n");
}
return 0;
}
```
程序的思路如下:
1. 首先,通过 `scanf` 函数分别读入字符串 `a` 和 `b`。
2. 然后,遍历字符串 `b` 找到其中最大的字符,遍历字符串 `a` 找到其中最小的字符。
3. 接着,分别遍历字符串 `a` 和 `b` 找到最大字符和最小字符在两个字符串中的位置。
4. 最后,将最大字符插入到最小字符后面,并输出插入后的字符串。
需要注意的是,这个程序中只考虑了最大字符在字符串 `b` 中只出现一次的情况,如果最大字符出现多次,会将第一个出现的最大字符插入到最小字符后面。如果需要考虑最大字符出现多次的情况,可以对程序进行修改。
阅读全文