c语言写一段代码,要求判断传进来的字符串如果不是是adc或是abc或是?则打印fail
时间: 2024-10-24 19:15:18 浏览: 24
在C语言中,你可以编写如下的函数来实现这个功能:
```c
#include <stdio.h>
#include <stdbool.h> // 引入bool类型
bool is_valid_string(const char* str) {
if (str == NULL || strlen(str) != 3) {
return false; // 非法输入(长度不是3)
}
const char* valid_strings[] = {"adc", "abc", "?"};
int num_valid = sizeof(valid_strings) / sizeof(valid_strings[0]);
for (int i = 0; i < num_valid; i++) {
if (strcmp(str, valid_strings[i]) == 0) {
return true;
}
}
return false; // 如果没有匹配,则返回false
}
int main() {
char input[50];
printf("请输入一个字符串(abc, adc, ?):");
fgets(input, sizeof(input), stdin); // 从标准输入读取
input[strcspn(input, "\n")] = '\0'; // 移除fgets添加的换行符
if (is_valid_string(input)) {
printf("Pass\n");
} else {
printf("Fail\n");
}
return 0;
}
```
这段代码首先定义了一个`is_valid_string`函数,检查传入的字符串是否在预设的有效字符串数组中。然后在主函数里获取用户输入并调用该函数进行验证。
阅读全文