C 中的字符串比较密码

String compare in C for a password

void main()
{
    Password();
}


int Password()
{
    // Declare local variables//
    char cPassCode[] = "String";
    int iFlag, iComparison = 0;

    // Run the code to check the password//
    while (iFlag = 0)
    {
        printf("Please enter the password: ");
        scanf("%s", cPassCode);
        iComparison = strcmp(cPassCode, "A23bc5");
        if (iComparison = 0)
        {
            ArrayPrinter(Array);
            iFlag = 1;
        }
        else
        {
            printf("Wrong password");
            iFlag = 0;
        }
        return(iFlag);
    }
}

我编辑了代码部分,据我所知,输入密码 A23bc5 时应该 运行 正确。但是它总是返回错误的密码。有什么想法吗?

strcmp 函数 returns 如果字符串相等则返回 0。您应该编辑条件块。

编辑:

其实你也有非常基本的语法问题。

  int Password()
{
//declare local variables//
char cPassCode[] = "String";
int iFlag=0, iComparison = 0;

//Run the code to check the password//
while (iFlag == 0)
{
    printf("Please enter the password: ");
    scanf("%s", cPassCode);
    iComparison = strcmp(cPassCode,"A23bc5");
    if (iComparison == 0)
    {
        printf("\n Accepted");
        iFlag = 1;
    }
    else
    {
        printf("Wrong password");
        iFlag = 0;
    }
    return(iFlag);
}
}

int main()
{


 Password();

 return 0;
}

这会起作用

if (iComparison = 0)

正在将 0 赋给变量然后对其进行测试,0 的计算结果为 false。

 if (iComparison == 0)

正在检查变量是否为 0,这可能是你的意思

//C 中的字符串比较密码直到 5 次//

#include<stdio.h>
#include<string.h>

int main(){

int i,value;

char pass[10],id[10],key[]="1234";

printf("enter your id: ");
scanf("%s", id);

for(i=5;i>=0;i--){

printf("\nenter your password: ");
scanf("%s",pass);
value=strcmp(pass,key);

if(value==0){   
printf("matched");
return 0 ;
}

else{       
printf("not matched you have %d try left", i);
}
 }
return 0;
}