[問題] 請問輸入字串的驗証?

看板C_and_CPP (C/C++)作者 (千里之外)時間15年前 (2011/07/12 21:40), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) dev-c 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 想寫一個帳號、密碼的通關驗証... 餵入的資料(Input): 預期的正確結果(Expected Output): 我輸入正確帳號jacky,但仍過不了?? 跟正確的答案是一樣的..是錯在哪呢?? 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #include <stdio.h> #include <stdlib.h> int main(void){ char id[10]="jacky"; char pass[10]="1"; char id1[10]; char pass1[10]; printf("請輸入帳號: "); scanf(" %s",&id1); fflush(stdin); printf("請輸入密碼: "); scanf(" %s",&pass1); if(id1==id) printf("ok!!!\n"); else printf("failed\n"); printf("正確id= %s\n",id1); system("pause"); return 0; } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.41.131.3

07/12 21:43, , 1F
對字元陣列而言,scanf 不用加 &,另不可用==作為比較
07/12 21:43, 1F

07/12 21:43, , 2F
字串比對用 strcmp、strncmp、strnicmp 相關函式.
07/12 21:43, 2F

07/12 21:44, , 3F
if(id1==id) 這是比較兩者的記憶體位置是否相同
07/12 21:44, 3F

07/12 21:59, , 4F
可以解釋一下strnicmp在幹麼嘛? 它不是標準函式喔
07/12 21:59, 4F

07/13 12:23, , 5F
都忘了補.strnicmp 中間的i指的是不分大小寫比較,
07/13 12:23, 5F

07/13 12:24, , 6F
也有stricmp,的確是一些compiler自己實做.
07/13 12:24, 6F
文章代碼(AID): #1E74xLaJ (C_and_CPP)
文章代碼(AID): #1E74xLaJ (C_and_CPP)