在C語言裡字串不能用 "==" 來直接比較的,要用 strcmp(s1,s2) 這個函數來比較
語法︰int strcmp(char *s1,char *s2)
字串s1 > 字串s2 則傳回負值
字串s1 = 字串s2 則傳回 0
字串s1 < 字串s2 則傳回正值
記得要 #include <string.h> 這個標頭檔
所以看 strcmp 的傳回值是否為 0 就能判斷2字串是否相等
判斷密碼的副程式那邊我想應該是要先輸入才能去比較巴,所以我把 if() 和 輸入 2個順序反過來。
i 的範圍的話我想應該是從 0~2 ( 0、1、2 )剛好3次,大致上就這些。
複製程式
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char account[100],result,c[100]="none",y,n;
int i=0,j=0;
char check(char password[100])
{
for(i=0;i<=2;i++)
{
printf("Please input your password:");
scanf("%s",c);
if(strcmp(c,password)==0)
break;
}
if(i==3)
return 'n'
else
return 'y'
}
int main(void)
{
printf("預設帳號:guest 密碼:guest\n");
printf("預設帳號:abc 密碼:123\n");
printf("預設帳號:qoo 密碼:ooo\n");
printf("Please input your account:");
scanf("%s",account);
if(strcmp(account,"guest")==0)
{
char password[100]="guest";
result=check(password);
}
else
if(strcmp(account,"abc")==0)
{
char password[100]="123";
result=check(password);
}
else
if(strcmp(account,"qoo")==0)
{
char password[100]="ooo";
result=check(password);
}
else
result='n'
if(result=='y')
printf("輸入正確~!!!!\n");
if(result=='n')
printf("帳號錯誤~!!!!\n");
system("PAUSE");
return 0;
}