打印结构的字符串

时间:2018-01-25 06:36:15

标签: c

当我尝试打印字符串" descpt"时出现问题。请有人帮助我。 这是我的代码:

struct Article {
    int a;
    int b;
    const char *descpt[20];
};

void Print(Article * data) {
    printf("The article number is %d\n", data->a);
    printf("The quantity is %d\n", data->b);
    printf("The article number is %s\n", data->descpt[20]);
}

int main() {
    Article data;
    data.a = 10;
    data.b = 20;
    data.descpt[20] = "Articles";
    Print(&data);
    return 0;
}

2 个答案:

答案 0 :(得分:0)

#include<stdio.h>
#include<string.h>
struct Article {
    int a;
    int b;
    char descpt[20];
};

void Print(Article * data) {
    printf("The article number is %d\n", data->a);
    printf("The quantity is %d\n", data->b);
    printf("The article number is %s\n", data->descpt);
}
int main()
{
    Article data;
    data.a = 10;
    data.b = 20;
    strncpy_s(data.descpt, "Articles", strlen("Articles"));
    Print(&data);
    return 0;

}

答案 1 :(得分:0)

也许你想要这样的东西?

struct Article {
    int a;
    int b;
    const char descpt[20]; /* array of max 19chars+terminator\0 */
};

void Print(Article * data) {
    printf("The article number is %d\n", data->a);
    printf("The quantity is %d\n", data->b);
    printf("The article number is %s\n", data->descpt);
}
int main()
{
    Article data;
    data.a = 10;
    data.b = 20;
    strcpy(data.descpt,"Articles");
    Print(&data);
    return 0;
}

对于strcpy(),您必须#include <string.h>