2011-03-26 78 views
0

我試圖將字符串中的名字和姓氏從字符串存儲到結構中,但我得到了(警告:傳遞strcpy的參數1使得整型指針沒有轉換),我不確定在哪裏把strcpy試圖把它放在while循環中得到了有意義的錯誤。但不知道在哪裏放置的strcpy EDITED令牌化C中的字符串

struct trip 

    { 
    char first_name; 
    char last_name; 

    } 
    int main(void) 
    { 
    struct trip travel[12]; 
    } 

    char input_name(struct trip travel[MAXTRIP], int index) 
    { 
     int name_read, length; 
     int name_bytes = 100; 
     char *name, *word;     

     getchar(); 
     printf("Please enter name:\n"); 

     name = (char *)malloc(name_bytes + 1); 
     name_read = getline (&name, &name_bytes, stdin); 

     word = strtok(name, ","); 
     while (word != NULL) 
     { 
      strcpy(travel[index].first_name, word); 
      word = strtok(NULL, ","); 

     } 


    } 
+2

什麼是「單詞」?什麼是'名稱'?你如何宣佈你的變量?你真的得到那個錯誤信息嗎? 'strcpy'不會在程序中的任何地方使用。 – 2011-03-26 18:30:19

+5

請張貼您的實際代碼。沒有上面顯示的'strcpy',你沒有顯示大部分變量是什麼。 – 2011-03-26 18:30:46

+2

在你的結構中,你只能容納兩個字符:一個用於名字,另一個用於姓氏。如果你想容納更多的字符定義一個數組或者一個指向數組的指針(char *)並動態地分配內存。 – Robertas 2011-03-26 18:38:05

回答

4

忽略在代碼中(MANY)錯誤,您正在把strcpy()在正確的地方。

但是,您沒有使用正確的參數調用它:strcpy()需要2個參數。
基本上都是char*;你傳遞一個char和一個char*,這就是編譯器抱怨的原因(對於編譯器來說,char的行爲類似於int,所以它表示「strcpy使得整數指針」)。

您需要查看您的數據結構並將正確的char* s傳遞給strcpy()

+0

是的,我正在看我的筆記,似乎我錯了。 – 2011-03-26 19:12:48