单一个单词表存放了五个表示颜色的英文单词,输入一个字母,在单词表中查找并输出所有以此字母开头的单词,若没有找到,输出Not Found。要求用指针数组和二级指针实现。词索引
时间: 2024-02-22 20:59:14 浏览: 330
VC++奥运五环小程序
4星 · 用户满意度95%
好的,您的问题是如何用指针数组和二级指针实现一个颜色单词表的词索引,可以根据输入的字母返回以该字母开头的所有单词。我这里提供一个示例代码,供您参考:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int MAX_WORD_NUM = 5; // 单词表中单词的数量
const int MAX_WORD_LEN = 20; // 单词的最大长度
// 颜色单词表
char words[MAX_WORD_NUM][MAX_WORD_LEN] = {
"red",
"green",
"blue",
"yellow",
"black"
};
// 指针数组,存放每个单词的首地址
char* word_ptrs[MAX_WORD_NUM];
// 二级指针,指向指针数组
char** word_index = word_ptrs;
// 初始化指针数组
void init_index() {
for (int i = 0; i < MAX_WORD_NUM; i++) {
word_ptrs[i] = words[i];
}
}
// 查找以指定字母开头的单词
void search_words(char c) {
bool found = false;
for (int i = 0; i < MAX_WORD_NUM; i++) {
if (*word_index[i] == c) {
cout << word_index[i] << endl;
found = true;
}
}
if (!found) {
cout << "Not Found" << endl;
}
}
int main() {
init_index();
char c;
cout << "请输入要查找的字母:" << endl;
cin >> c;
search_words(c);
return 0;
}
```
这个示例代码中,我们首先定义了一个颜色单词表,包含五个表示颜色的英文单词。然后,我们使用指针数组 `word_ptrs` 存放每个单词的首地址,再用二级指针 `word_index` 指向指针数组。初始化时,我们将每个单词的首地址存放到指针数组中。查找以指定字母开头的单词时,我们遍历指针数组,判断每个单词的首字母是否等于指定字母,如果相等,则输出该单词,并将 `found` 标记设为 `true`。如果遍历完指针数组后 `found` 的值仍为 `false`,则输出 Not Found。
阅读全文