编写函数将一个字符按照字符顺序插入到一个有序字符数组中(数组长20, 输入的有序字符串长度<10)。函数原型: void StrInsert(char a[], char c); 在主函数输入有序串以及一个字符,调用函数实现插入,最后在主函数输出改变后的串。 样例输入1:bcfmr a 样例输出1:abcfmr 样例输入1:bcfmr n 样例输出1:bcfmnr
时间: 2023-12-10 10:42:09 浏览: 23
下面是实现该函数的代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void StrInsert(char a[], char c) {
int len = strlen(a);
if (len >= 20) return; // 防止数组越界
// 从后往前遍历数组,找到第一个比c小的元素的下标
int i = len - 1;
while (i >= 0 && a[i] > c) {
a[i+1] = a[i];
i--;
}
// 将c插入到数组中
a[i+1] = c;
}
int main() {
char str[20], c;
cin >> str >> c;
StrInsert(str, c);
cout << str << endl;
return 0;
}
```
函数的思路是从后往前遍历数组,找到第一个比要插入的字符小的位置,然后将这个位置后面的元素都往后移动一位,最后将要插入的字符放到这个位置的后面一位。这样可以保证数组依然是有序的。
阅读全文