2011-03-26 82 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