You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言不使用库和正则如何判断字符串同时包含大小写字母?

解决思路

  • 新增两个标记变量,分别记录小写字母、大写字母的出现状态,初始值设为0(代表未出现对应类型字符)
  • 遍历密码每一位字符时,除了校验字符合法性,同步更新对应类型的标记位
  • 遍历完成后校验两个标记位的状态,均为1时即满足「同时包含大小写字母」的要求

代码实现

首先你可以自行实现大小写判断逻辑(无需依赖ctype.h):

// 判断是否为小写字母
int isChar_abc(char c) {
    return c >= 'a' && c <= 'z';
}
// 判断是否为大写字母
int isChar_ABC(char c) {
    return c >= 'A' && c <= 'Z';
}

核心校验逻辑修改如下:

int i = 0;
int has_lower = 0; // 标记是否出现过小写字母
int has_upper = 0; // 标记是否出现过大写字母

while (string[i] != '\0')
{
    if (isChar_abc(string[i])) {
        has_lower = 1;
        i++;
    } else if (isChar_ABC(string[i])) {
        has_upper = 1;
        i++;
    } else {
        // 存在非大小写的非法字符
        printf("Error, end code\n");
        return 0;
    }
}

// 校验是否同时包含大小写
if (!(has_lower && has_upper)) {
    printf("密码需要同时包含大写和小写字母\n");
    return 0;
}
// 此处可继续执行后续安全等级的校验

内容的提问来源于stack exchange,提问作者Tokugawa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:57:04