有N 个国家名,已按字母从小到大的顺序排列,现插入一个国家,可用顺序搜索法或折半查找法,将此功能用函数void insert(char str[][20],char c[l)来实现,在主函数中调用此函数,并输出数据。测试数据:Canada,China,England,Korea,USA,要插入 Japan,
时间: 2024-03-07 22:48:41 浏览: 41
这个问题和之前的问题类似,只是数据类型稍微不同,下面是实现代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
void insert(char str[][20], char c[]) {
int len = strlen(c);
int i, j, k;
// 找到要插入的位置
for (i = 0; i < 5; i++) {
if (strcmp(str[i], c) > 0) {
break;
}
}
// 将插入位置后面的元素全部后移一位
for (j = 4; j >= i; j--) {
strcpy(str[j+1], str[j]);
}
// 将新元素插入到指定位置
strcpy(str[i], c);
}
int main() {
char str[][20] = {"Canada", "China", "England", "Korea", "USA"};
char c[] = "Japan";
insert(str, c);
for (int i = 0; i < 6; i++) {
cout << str[i] << endl;
}
return 0;
}
```
输出结果为:
```
Canada
China
England
Japan
Korea
USA
```
其中,`insert`函数的实现和之前的类似,只是数据类型稍微不同。在主函数中,我们先定义一个二维字符串数组`str`,然后调用`insert`函数将新元素`"Japan"`插入到数组中,最后输出插入后的结果。
阅读全文