2011-05-08 28 views
1
char *member[8]; 
char *tag;// this points a lot of text. if i print htmtag, it works fine with a few lines of text printing out 

for (int x = 0; x < 8; x++) 
{ 
    member[x] = tag[x+15]; 
} 
printf("member: %s",member); 

爲什麼上面只打印出成員中的第一個字符而不是整個7,如果我在成員[0]/member [1]/member [2]上的printf值存儲在那裏,但以下是印?爲什麼printf只打印這個數組的第一個字符而不是全部?

member: 1 

,我想打印出

member: 1234567 
+3

我們展示完整的代碼。什麼是'tag'和'member'定義爲。也許有任何'wchar_t'或MS'TCHAR'? – Erik 2011-05-08 10:32:09

+2

我們需要定義'member'和'tag'。 – orlp 2011-05-08 10:32:24

+0

更新!希望這有助於? – user370507 2011-05-08 14:04:07

回答

4

成員應聲明爲:

char member[8]; 

char * member[8]; 

,因爲它是字符數組,而不是字符指針數組

+0

+1好搭檔! – MByD 2011-05-08 14:09:37

6

當你沒有張貼足夠的代碼,以下是

member變量不是char[]而是wchar_t[]或MS TCHAR[]。這會使member數組中的每個元素大於1個字符,因此當printf將它視爲char數組時,它會看到'1', '\0', '2', '\0'等等 - 打印第一個1,然後停止在0字節上。

相關問題