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] /成员[1] /成员[2]上打印,则值存储在那里,但打印下面的内容?
即
member: 1
我想打印出来
member: 1234567
答案 0 :(得分:6)
由于您没有发布足够的代码,以下是 guess :
您的member
变量不是char[]
,而是wchar_t[]
或MS TCHAR[]
。这会使member
数组的每个元素都大于1个字符,所以当printf
将它视为char数组时,它会看到'1', '\0', '2', '\0'
等等 - 打印第一个1
1}}然后停在0字节上。
答案 1 :(得分:6)
成员应声明为:
char member[8];
不
char * member[8];
因为它是一个字符数组,而不是一个char指针数组