2014-12-06 82 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); 

} 

从另一个函数获取字符串时使用此类型的参数。