2013-10-29 94 views
0

11: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘char (*)[100]’ 這是我的錯誤....廣東話修復它...錯誤的格式

#include <stdio.h> 
#include <string.h> 
int main() 
{ 
char *a; 
char *count; 
char str[100]; 
int i ; 
printf("\n:enter string for Palindrome test\t"); 
scanf("%s", &str); 
i= strlen(str); 
//a=(char *)malloc(i*sizeof(char)); 
a=&str[0]; 
count=&str[i-1]; 
while((*(a++)==*(count--)) && i>=1) 
{ i--; } 
if(i==0) { printf("\n%s is a palin",str);} 
else { printf("\n%s is not palin",str);} 

} 
+0

爲什麼我的代碼不運行? –

+0

它運行良好。看到它[這裏](http://ideone.com/ZxZQEE)。只需在關閉'}'的'main'之前添加'return 0;'。 – haccks

+0

不要相信你可以聲明一個單一的符號作爲迴文... – Runium

回答

3

當然,你可以解決它。只是不要傳錯類型。變化:

scanf("%s", &str); 

要:

scanf("%s", str); 

,或等效:

scanf("%s", &str[0]); 
+0

謝謝...但我的代碼不運行..大聲笑什麼錯了? –

+1

不知道 - 你的調試器說什麼? –

0

你不要總是用一個符號傳遞參數給scanf()的。如果格式字符串包含%c或%s,它將查找char *類型。當你用& str調用它時,你用一個char **類型或編譯器所說的char * [100](一個指向100個字符數組的指針)調用它。

+1

'char **'和'char(*)[100]'不是同一類型。 –