2014-12-06 110 views
-2

該函數似乎不起作用,當print variable(string)函數中的函數的正確形式是什麼?使用函數打印兩個變量

void f1(char ara, char arb) 
{ 
    printf("Acronym found:\n  %s - %s\n", ara, arb); 

} 


int main(void) 
{ 
    char arc[20],ar1[] = "AFAIK",ard1[] = "as far as I know"; 

printf("Welcome to the internet help system\nEnter \"quit\" to exit the program\n"); 
do 
{ 
    printf("Enter a string: "); 
    scanf("%s", &arc); 

    if (strcmp(arc, ar1) == 0) 
     f1(ar1, ard1); 

....... 
+0

這個'void f1(char ara,char arb)'是錯誤的,你傳遞的是字符串,而不是字符。 – OiciTrap 2014-12-06 02:39:14

+0

我認爲沒有返回值,所以我使用void,我認爲char是你如何定義一個字符串 – 2014-12-06 02:39:30

+0

更改無效'f1(char ara,char arb)'爲'void f1(char * ara,char * arb)'。 – OiciTrap 2014-12-06 02:44:33

回答

1

只是將f1中參數的類型更改爲指針變量。

無效F1(字符* ARA,字符* ARB)

因爲同時給燒焦它會只有一個字符,因爲它只有一個存儲字符字節。

當你將它轉換成字符指針時,它將有4個字節來存儲字符串。

1
void f1(char *ara, char *arb) 
{ 
printf("Acronym found:\n  %s - %s\n", ara, arb); 

} 
(or) 

void f1(char ara[], char arb[]) 
    { 
printf("Acronym found:\n  %s - %s\n", ara, arb); 

} 

從另一個函數獲取字符串時使用此類型的參數。