c语言怎么打印两个字符串数组的值,输出结构体中字符数组成员的值如何多了个字符?...

当前位置:我的异常网» C语言 » 输出结构体中字符数组成员的值如何多了个字符?

输出结构体中字符数组成员的值如何多了个字符?

www.myexceptions.net  网友分享于:2013-02-12  浏览:69次

输出结构体中字符数组成员的值怎么多了个字符?????

代码如下:

#include  

main()

{

struct{

char   name[8];

int   age;

char   sex[8];

char   depart[20];

float   wage1,   wage2,   wage3,   wage4,   wage5;

}a;

FILE   *fp;

float   wage;

char   c= 'Y ';

fp=fopen( "wage.dat ",   "w ");

while(c== 'Y '||c== 'y ')

{

printf( "\nName: ");

scanf( "%s ",   a.name);

printf( "%s\n ",a.name)/*a   */

printf( "Age: ");

scanf( "%d ",   &a.age);

printf( "%s\n ",a.name)/*b   */

printf( "Sex: ");

scanf( "%s ",   a.sex);

printf( "Dept: ");

scanf( "%s ",   a.depart);

文章评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言结构体,是可以使用动态字符串数组的。一种实现方法是使用指针和动态内存分配函数(如malloc、calloc等)来创建一个指向字符串的指针数组,然后在需要的时候动态地分配内存来存储字符串。下面是一个示例代码: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NAME_LEN 50 typedef struct { char **names; int num_names; } Person; void add_name(Person *p, char *name) { p->num_names++; p->names = realloc(p->names, sizeof(char *) * p->num_names); p->names[p->num_names - 1] = malloc(sizeof(char) * (strlen(name) + 1)); strcpy(p->names[p->num_names - 1], name); } int main() { Person p; p.names = NULL; p.num_names = 0; add_name(&p, "John"); add_name(&p, "Mary"); add_name(&p, "Tom"); for (int i = 0; i < p.num_names; i++) { printf("Name %d: %s\n", i + 1, p.names[i]); } for (int i = 0; i < p.num_names; i++) { free(p.names[i]); } free(p.names); return 0; } ``` 在上面的代码,我们定义了一个名为Person的结构体,其包含一个char类型的指针指向字符串数组,以及一个int类型的变量表示数组字符串的数量。我们定义了一个add_name函数,用于向字符串数组添加新的字符串。这个函数首先将num_names加1,然后使用realloc函数重新分配names指针数组的内存空间,以便能够存储更多的指向字符串的指针。接下来,它使用malloc函数为新字符串分配内存,并使用strcpy函数将字符串复制到新分配的内存。在主函数,我们使用add_name函数向Person结构体添加了三个字符串,然后使用for循环打印出每个字符串。最后,我们使用for循环和free函数释放了动态分配的内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值