编写函数将一个字符按照字符顺序插入到一个有序字符数组中(数组长20, 输入的有序字符串长度<10)。函数原型: void StrInsert(char a[], char c); 在主函数输入有序串以及一个字符,调用函数实现插入,最后在主函数输出改变后的串。 样例输入1:bcfmr a 样例输出1:abcfmr 样例输入1:bcfmr n 样例输出1:bcfmnr
时间: 2023-12-10 07:41:54 浏览: 41
以下是示例代码:
```c++
#include <iostream>
using namespace std;
void StrInsert(char a[], char c) {
int i = 0;
while (a[i] != '\0' && a[i] < c) {
i++;
}
// 把字符插入到数组中
for (int j = 19; j >= i; j--) {
a[j+1] = a[j];
}
a[i] = c;
}
int main() {
char a[20], c;
cout << "请输入一个有序字符串(长度小于10):";
cin >> a;
cout << "请输入要插入的字符:";
cin >> c;
StrInsert(a, c);
cout << "改变后的字符串为:" << a << endl;
return 0;
}
```
函数使用了类似于插入排序的思路,首先找到要插入的位置,然后将该位置后面的字符都往后移动一位,最后把要插入的字符放到对应的位置上。需要注意的是,数组长度为20,因此在移动字符时需要从后往前遍历数组。
阅读全文