snprintf

snprintf##

//表示输入输出头文件
#include <stdio.h>
//str家族函数头文件 strcpy strcat strcmp strchr strlen memcpy …
#include <string.h>
//申请内存空间头文件 malloc calloc realloc
#include <stdlib.h>

#define MAX 10

//定义学生结构体类型
struct cls_t{
char name[64];
int age;
int id;
char sex;
float cn;
float en;
//=======
};

int main(void)
{
int i;
int count = 0;
struct cls_t cls;
struct cls_t *new = NULL;
struct cls_t *prev = NULL;
//rand() 随机数
//int snprintf(char *str, size_t size, const char *format, …);
// 第一个参数:表示空间地址
// 第二个参数:表示空间大小
// 第三个参数:表示格式 %s %d %c %f %p %x …
// … 表示可变参 对格式补充
for (i = 0; i < MAX; i++)
{
//获取数据
snprintf(cls.name, sizeof(cls.name), “cls_%c%c”, rand() % 26 + ‘A’, rand() % 26 + ‘a’);
cls.age = rand() % 3 + 18;
cls.id = rand() % 100 + 10000;
cls.sex = “MF”[rand() % 2];
cls.cn = rand() % 30 + 70;
cls.en = rand() % 20 + 80;

	//申请空间
	new = (struct cls_t *)malloc(sizeof(struct cls_t) * (count + 1));
	if (new == NULL)
	{
		return -1;
	}

	//数据保存到空间中
	memcpy(new, prev, sizeof(struct cls_t) * count);
	free(prev);
	*(new + count) = cls;
	prev = new;


	count++;
    /*
	 *printf("name : %s age : %d id : %d sex : %c cn : %.2f en : %.2f\n", 
	 *    cls.name, cls.age, cls.id, cls.sex, cls.cn, cls.en);
     */
}

//遍历
for (i = 0; i < MAX; i++)
{
	printf("name : %s | age : %d | sex : %c\n", new[i].name, new[i].age, new[i].sex);
}
	
//销毁	
free(new);
return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值