提交记录 #484
提交时间:2024-12-10 16:43:17
语言:c
状态:Unaccepted
编译情况:编译成功
固定测试点#1:
额外测试点#1:
58【应用】元音排序
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
// 函数用于判断字符是否为元音字母
int isVowel(char c) {
char vowels[] = "aeiouAEIOU";
for (int i = 0; i < 10; ++i) {
if (c == vowels[i]) {
return 1;
}
}
return 0;
}
// 函数用于比较两个字符,用于qsort
int compare(const void *a, const void *b) {
char arg1 = *(const char *)a;
char arg2 = *(const char *)b;
// 小写在前,大写在后
if (islower(arg1) && isupper(arg2)) {
return -1;
} else if (isupper(arg1) && islower(arg2)) {
return 1;
} else if (arg1 < arg2) {
return -1;
} else if (arg1 > arg2) {
return 1;
}
return 0;
}
// 函数用于提取字符串中的元音字母并排序
void extractAndSortVowels(const char *input, char *output) {
int index = 0;
for (int i = 0; input[i] != '\0'; ++i) {
if (isVowel(input[i])) {
output[index++] = input[i];
}
}
output[index] = '\0'; // 确保输出字符串以空字符结尾
// 使用qsort进行排序
qsort(output, index, sizeof(char), compare);
}
int main() {
char input[1000] = "Abort!May Be Some Errors In Out System.";
char output[1000]; // 存储提取并排序后的元音字母
extractAndSortVowels(input, output);
printf("%s\n", output);
return 0;
}