我的周期永远不会进入if语句

时间:2015-02-18 20:47:10

标签: c

我想我的问题非常简单。我检查一个字符串以查看该值是否全部按字母顺序排列,如果它是j = 0将继续下一条指令,如果它不是j = 1继续询问用户名称。如果您第一次失败,它将设置j = 1,如果它全部按字母顺序排列,则永远不会输入j = 0

for(p = 0; p < 50; p++)
{
    if(isalpha(name[p]) == 0)
    {
        printf("Invalide value.\n");
        j = 1;
        break;
    }
    **if(isalpha(name[p]) != 0)
    {
        j = 0;
    }**
}

我也尝试了下一个代码:

for(p = 0; p < 50; p++)
{
    if(!isalpha(name[p]))
    {
        printf("Invalide value.\n");
        j = 1;
        break;
    }
    **if(isalpha(name[p]))
    {
        j = 0;
    }**
}

1 个答案:

答案 0 :(得分:0)

你有一个小错字。在第二次比较中,您将变量拼写为nome而不是name,使其成为完全独立的检查。

此外,如果您希望循环在isalpha时终止,请在break之后添加j=0;语句。