首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >它总是返回FALSE,即使每个变量都满足条件。

它总是返回FALSE,即使每个变量都满足条件。
EN

Stack Overflow用户
提问于 2018-11-03 23:27:37
回答 1查看 39关注 0票数 1

我不明白为什么它总是返回FALSE,即使每个变量都满足条件。我试图将条件中的字符改为ascii数,但它不能解决这个问题。任何帮助,非常感谢。

我希望检查数组中的每个变量,如果其中一个变量与字母表或“空格”或".“中的字符不同,则函数将返回False。

代码语言:javascript
复制
bool KiemTraTenSinhVien(char ten[])
{
    for (int i = 0; i < strlen(ten); i++)
    {
        if (ten[i] == (char)" " || ten[i] == (char)".")
        {
        }
        else if (ten[i] >= (char)"a" && ten[i] <= (char)"z")
        {
        }
        else if (ten[i] >= (char)"A" && ten[i] <= (char)"Z")
        { 
        }
        else
        {
            return false;
        }
    }
    return true;
}

我也试过这个,但这个问题还没有解决。

代码语言:javascript
复制
bool KiemTraTenSinhVien(char ten[])
{
    for (int i = 0; i < strlen(ten); i++)
    {
        if (ten[i] == ' ' || ten[i] == '.')
        {
        }
        else if (ten[i] >= 'a' && ten[i] <= 'z')
        {
        }
        else if (ten[i] >= 'A' && ten[i] <= 'Z')
        { 
        }
        else
        {
            return false;
        }
    }
    return true;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-03 23:43:06

使用有效字符数组并使用strchr进行测试。

代码语言:javascript
复制
bool KiemTraTenSinhVien(char ten[])
{
    char valid[] = " .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    int len = strlen ( ten);
    for (int i = 0; i < len; i++)
    {
        if ( ! strchr ( valid, ten[i]))
        {
            return false;
        }
    }
    return true;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53136418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档