如何输出一个结构体中的数组??

typedefstruct{char*ch;intlength;}Str;假设中间已经给str进行了赋值操作for(p=0;p<str.length;p++){print... typedef struct
{
char *ch;
int length;
} Str;
假设中间已经给str进行了赋值操作

for(p=0;p<str.length;p++)
{
printf("%d\n",str.ch[p]);}
最后想输出str中的每一个数据要怎么做??为什么上面的for循环不行
展开
 我来答
sivaxing
2017-03-18 · TA获得超过141个赞
知道小有建树答主
回答量:204
采纳率:83%
帮助的人:90万
展开全部

首先你的循环的判断p<str.length,C语言中这样是获取不到长度的,你可以试试p<sizeof(str)/sizeof(str[0]);


输出语句改成 printf("%s,%d", str[i].ch, str[i].length);就可以输出了

typedef struct
{
    char *ch;
    int length;
} Str;
int main() {
    Str str[2] = {{"ab",1},{"cd",2}};
    for(int p=0;p<sizeof(str)/sizeof(str[0]);p++){
        printf("%s,%d\n",str[p].ch,str[p].length);
    }
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式