2014-12-05 66 views
-4

有沒有辦法讓一個函數存儲一個字符串,然後在int main()中調用該函數來在屏幕上顯示它?我一直在尋找很多,並沒有找到一個明確的例子。這是我的代碼。我希望能夠在不使用if語句的情況下調用它C程序。調用一個打印字符串的函數

#include <stdio.h> 


/* function declaration */ 
    int StrPrint(char *str); 
    /* main() function */ 
    int main() 
    { 
     char str[] = "The string i am returning n"; 
     int (*ptr)(char *str); 

     ptr = StrPrint; 
     if (!(*ptr)(str)) 
       printf("Done!\n"); 
      return 0; 
    } 
/* function definition */ 
    int StrPrint(char *str) 
     { 
      printf("%s\n", str); 
      return 0; 
     } 
+3

是的,有。你試過什麼了? – 2014-12-05 04:35:28

+0

我已經做了一個函數來存儲一個字符串,但是當我在主函數中調用它時,它會給我一個錯誤。 – FlipFlopSquid 2014-12-05 04:40:08

+0

編輯您的文章幷包含您的代碼。 – 2014-12-05 04:40:20

回答

0

如前所述由你,如果你不喜歡使用指針是可以做到的,如下圖所示:

#include <stdio.h> 

     int StrPrint(char s[]) 
     { 
      printf("%s\n", s); 
      return 0; 
     } 
    int main() 
    { 
     char str[] = "The string i am returning n"; 

     if (!StrPrint(str)) 
       printf("Done!\n"); 
      return 0; 
    } 
+0

我如何使用沒有if語句的函數? – FlipFlopSquid 2014-12-05 05:02:37

+0

如果不需要,「if」的目的是打印'Done',只需調用該函數並完成它。像'StrPrint(str)' – Gopi 2014-12-05 05:03:41

+0

謝謝,現在很清楚,不知道爲什麼我以前沒有看到,eeei,這是一個漫長的一週。 – FlipFlopSquid 2014-12-05 05:11:07

1

您發佈的代碼遠比您試圖完成的簡單任務複雜得多。

爲什麼不能是這樣的:

#include <stdio.h> 

void StrPrint(char* str); 

int main(void) 
{ 
    char str[] = "The string i am returning n"; 
    StrPrint(str); 
    return 0; 
} 

void StrPrint(char* str) 
{ 
    printf("%s\n", str); 
} 

這與您的要求略有衝突,該函數不存儲,它只是打印出傳給它作爲參數字符串的字符串。但根據你發佈的代碼,這看起來像你想要完成的。

+0

這是我的問題的重點。尋找更簡單的方法。感謝你的指導。 – FlipFlopSquid 2014-12-05 04:57:05

+0

如果滿意,請接受答案。 – 2014-12-05 04:57:58

+0

只有當你upvote我的問題,我有一個代表維護太 – FlipFlopSquid 2014-12-05 05:00:15