编写一个C语言函数,让用户输入一个字符串,然后检查该字符串是否包含至少一个元音字母(a, e, i, o, u),如果存在则返回'YES',否则返回'NO'。请展示相应的代码实现和逻辑步骤。
时间: 2024-11-30 11:14:06 浏览: 22
当然可以。在C语言中,我们可以创建一个函数`contains_vowel`来完成这个任务。以下是代码的实现和逻辑步骤:
```c
#include <stdio.h>
#include <stdbool.h> // 引入布尔类型
// 定义元音字母数组
const char vowels[] = {'a', 'e', 'i', 'o', 'u'};
bool contains_vowel(char *str) {
int len = strlen(str); // 获取字符串长度
for (int i = 0; i < len; i++) { // 遍历字符串的每个字符
if (strchr(vowels, str[i]) != NULL) { // 使用 strchr 检查字符是否在元音数组中
return true; // 找到元音立即返回 true
}
}
return false; // 如果遍历完都没有找到元音,返回 false
}
int main() {
char input[100];
printf("Enter a string: ");
fgets(input, sizeof(input), stdin); // 读取用户输入并去除换行符
input[strcspn(input, "\n")] = '\0'; // 替换换行符为空字符
if (contains_vowel(input)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
这个程序首先定义了一个包含所有元音的字符数组,然后在`contains_vowel`函数中,通过遍历输入字符串中的每一个字符,检查它是否在元音数组中。如果有找到,就返回`true`;如果没有找到,则遍历结束后返回`false`。
在`main`函数中,我们获取用户的输入,调用`contains_vowel`函数判断并打印结果。
阅读全文