2011-11-30 83 views
0

因此,繼承人的協議,我使用GTK就這一個gchar。轉換一個char

我所要求的名稱上set_entry_text。因此,用戶輸入他的名字,並將該變量保存爲字符。

char *jugador1, *jugador2 ///they're in a structure 

void obten_nombre (GtkWidget *widget, gpointer info) 
{ 
    WIDGETS *elementos = (WIDGETS *)info; 
    gchar *j1, *j2; 

    j1=malloc(50 *sizeof(gchar)); 
    j2=malloc(50 *sizeof(gchar)); 
    strcpy(j1,gtk_entry_get_text(GTK_ENTRY(elementos->entry_j1))); 
    strcpy(j2,gtk_entry_get_text(GTK_ENTRY(elementos->entry_j2))); 
    strcpy(elementos->jugador1, j1); 
    elementos->jj1=j1; 
    // strcpy(elementos->jugador2, j2); 
    g_print("Jugador1: %s\n", elementos->jugador1); 
    gtk_widget_hide_all(elementos->ventana_popup2); 
    gtk_widget_show_all(elementos->ventana_principe); 
} 

有我正在做一個elementos->jugador1變量char

我正在做投:

gchar auxjugador1; 

我怎樣才能讓

auxjugador1 = elementos->jugador1 

所以我可以做一個

gtk_entry_set_text(GTK_ENTRY(elementos->nombre_jugador1),auxjugador1); 

謝謝你們!

回答

0

jugador1不是一個char變量。這是一個char *(一個指針)。

你不能把一個指針變成gchar

您可以再拍指針,它指向現有的數據,或宣佈大到足以容納一個副本,然後使用strcpy數組。

+0

是的,我試着做一個的strcpy(auxjugador1,JJ1)兩者都gchar ...我這樣做對嗎? – drodri420

+0

@ drodri420:要使用'strcpy',你需要做'auxjugador'大到足以容納字符串數組。像'gchar auxjugador [1000];'。 –