一个单词表存放了五个表示颜色的英文单词,输入一个字母,在单词表中查找并输出所有以此字母开头的单词,若没有找到,输出Not Found。要求用指针数组实现。
时间: 2023-09-11 22:05:17 浏览: 415
Java小程序 输入一个字符串,将每一个单词首字母大写
### 回答1:
以下是一个实现示例:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char colors[5][20] = {"red", "green", "blue", "yellow", "purple"};
char letter;
char* results[5];
int num_results = 0;
cout << "Enter a letter: ";
cin >> letter;
for (int i = 0; i < 5; i++) {
if (colors[i][0] == letter) {
results[num_results] = colors[i];
num_results++;
}
}
if (num_results == 0) {
cout << "Not Found" << endl;
} else {
cout << "Results:" << endl;
for (int i = 0; i < num_results; i++) {
cout << results[i] << endl;
}
}
return 0;
}
```
在这个示例中,我们首先定义了一个包含5个颜色单词的字符串数组colors。然后我们请求用户输入一个字母,我们将使用该字母查找以该字母开头的单词。我们定义了一个指向指针的指针数组results,以便我们可以存储我们找到的所有匹配结果。我们还定义了一个整数num_results,以便我们可以跟踪我们找到的结果数量。
我们使用一个for循环遍历所有颜色单词。如果一个单词以用户输入的字母开头,我们将该单词的指针存储在results数组中,并将num_results计数器增加1。
最后,我们检查我们是否找到了任何结果。如果没有找到,则输出“Not Found”。否则,我们输出所有找到的结果。
### 回答2:
我们可以先创建一个包含5个字符串指针的指针数组,每个指针指向一个颜色单词的字符串。然后,我们输入一个字母,通过遍历指针数组,找到以此字母开头的单词并输出。
下面是实现这个过程的代码示例:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
// 颜色单词数组
char* colors[5] = {"red", "green", "blue", "yellow", "black"};
char letter;
cout << "请输入一个字母:";
cin >> letter;
bool found = false;
// 遍历指针数组,并查找以输入字母开头的单词
for (int i = 0; i < 5; i++) {
if (colors[i][0] == letter) {
cout << colors[i] << endl;
found = true;
}
}
// 若没有找到以输入字母开头的单词,则输出 Not Found
if (!found) {
cout << "Not Found" << endl;
}
return 0;
}
```
通过输入一个字母,程序会遍历指针数组中的单词,并输出以此字母开头的单词。如果没有找到,则输出 "Not Found"。
### 回答3:
可以使用指针数组来实现查找并输出以给定字母开头的单词。
首先,定义一个指针数组,用于存放颜色的英文单词。例如,可以定义一个指针数组 `char *colorWords[]`,并初始化五个指针分别指向五个颜色单词的字符串。
接下来,输入一个字母 `char inputLetter`。
然后,使用循环遍历指针数组中的每个指针所指向的字符串。在循环体中,使用条件判断,如果字符串的第一个字母与输入的字母相同,则输出该字符串。
最后,判断是否有以输入字母开头的单词。可以定义一个变量 `int count = 0`,在每次输出符合条件的单词时,将 `count` 加 1。若循环结束后 `count` 仍然为 0,则输出 "Not Found"。
以下是一个示例代码:
```cpp
#include <stdio.h>
int main() {
char *colorWords[] = {"red", "blue", "green", "yellow", "black"};
char inputLetter;
int count = 0;
printf("请输入一个字母:");
scanf("%c", &inputLetter);
for (int i = 0; i < 5; i++) {
if (colorWords[i][0] == inputLetter) {
printf("%s\n", colorWords[i]);
count++;
}
}
if (count == 0) {
printf("Not Found\n");
}
return 0;
}
```
运行程序后,根据输入的字母会输出相应以该字母开头的颜色单词,或者输出 "Not Found"。
阅读全文