1
我想寫一個腳本,除了使用sscanf GET請求的數據。我似乎有問題與sscanf解析並傳遞給變量。我認爲這個問題與我的字符類型有關,但也可能與我的正則表達式字符串有關,因爲錯誤會將該組設置爲「%[az,AZ]」而不是「%[az,AZ]」,就像我一樣我期待它。你可以在http://cs.mcgill.ca/~phwang3/cgi-bin/searchRecord.c看到完整的源代碼,但我已經在這裏強調了主要的東西。期望char *但char(*)[20]
我似乎在這條線
if(sscanf(data,"firstName=%[a-z,A-Z]&lastName=%[a-z,A-Z]",&firstName, &lastName)!=2) {
有問題的變量上面的線爲
char firstName[20] = {0};
char lastName[20] = {0};
也與此有關之前宣佈將收到一個錯誤
warning: format ‘%[a-z,A-Z’ expects argument of type ‘char *’, but argument 3 has type ‘char * (*)[20]’ [-Wformat]
,我假設查詢存儲在變量「data」中,並且在poblematic st之前聲明環。
char* data;
data = getenv("QUERY_STRING");
甜!這工作。這是爲什麼呢?我指定了地址而不是指針嗎? –
甚至更好的是'&firstName [0]'和'&lastName [0]' –
@JosephSzymborski你必須傳遞一個指向'char'的指針,但是你傳遞了一個指向數組的指針。 – ouah