#ifndef HERO_H_INCLUDED
#define HERO_H_INCLUDED
#include
#include
typedef struct hero
{
int id;
char name;
char xed;
char work;
}Hero;
void show();
#endif // HERO_H_INCLUDED
#include"hero.h"
Hero hero[]= {1,"abc","f","d"};
void show()
{
int i;
for(i=0;i<4;i++)
{
printf("%d\t%c\t%c\t%c\n",hero[i].id,hero[i].name,hero[i].xed,hero[i].work);
}
}
头文件
#ifndef HERO_H_INCLUDED
#define HERO_H_INCLUDED
typedef struct hero
{
int id;
char name[10];
char xed[2];
char work[2];
}Hero;
#endif // HERO_H_INCLUDED
主程序
#include <stdio.h>
#include"hero.h"
Hero hero[4] = {{1,"abc","f","d"},
{2,"abc","f","d"},
{3,"abc","f","d"},
{4,"abc","f","d"}};
void show()
{
int i;
for(i=0;i<4;i++)
{
printf("%d\t%s\t%s\t%s\n",hero[i].id,hero[i].name,hero[i].xed,hero[i].work);
}
}
int main()
{
show();
return 0;
}
兄弟,首先你要确定你结构体里面的成员变量是要定义为字符串(也就是字符数组)还是字符,
用双引号包起来的叫字符串,比如"abcd","a","ds43"等,对应的输出格式符为%s
用单引号包起来而且只含有一个字母或者数字的叫做字符,比如'a', 'b' , '0' , '3' 等,对应的输出格式符为%c
我假设你的结构体的name是字符串,然后xed和work是字符,那么可以这样定义结构体:
typedef struct hero
{
int id;
char name[16]; //这是字符串
char xed; //这是字符
char work; //这是字符
}Hero;