使用c语言实现以上代码
时间: 2024-09-13 11:18:07 浏览: 23
在C语言中,由于没有内置的集合数据结构,我们需要使用数组或者链表来模拟。这里我们选择使用动态内存分配和一个布尔数组来表示是否遇到过某个大写字母。以下是实现该功能的C代码:
```c
#include <stdio.h>
#include <string.h>
int has_uppercase[26]; // 初始化所有字母未遇到过
void process_string(char *str) {
int len = strlen(str);
for (int i = 0; i < len; i++) {
char c = str[i];
if ('A' <= c && c <= 'Z') { // 检查是否是大写字母
if (!has_uppercase[c - 'A']) {
printf("%c", c); // 输出大写字母
has_uppercase[c - 'A'] = 1; // 标记已遇到
}
}
}
// 检查是否有大写字母
int found = 0;
for (int i = 0; i < 26; i++) {
if (has_uppercase[i]) {
found = 1;
break;
}
}
if (!found) {
printf("Not Found\n");
}
}
int main() {
char input[81]; // 保证足够接收最多80字符的输入
fgets(input, sizeof(input), stdin);
// 删除换行符
size_t len = strlen(input);
if (input[len - 1] == '\n') {
input[len - 1] = '\0';
}
process_string(input);
return 0;
}
```
阅读全文