C语言作业里的小技巧

二维数组的定义和释放 

	// 动态分配二维数组
	int **matrix = (int **)malloc(rows * sizeof(int *));
	for (int i = 0; i < rows; i++) {
		matrix[i] = (int *)malloc(cols * sizeof(int));
	}
	// 释放动态分配的内存
	for (int i = 0; i < rows; i++) {
		free(matrix[i]);
	}
	free(matrix);

给定某个字符串,找出某字符出现次数

int count_specific_char(char str[], int len, char c) {
	int num = 0, i;
	char b = tolower(c);
	for (i = 0; i < len; i++) {
		char a = tolower(str[i]);//使用ctype.h库
		if (a == b) {
			num++;
		}
	}
	return num;

}

二维数组里的一维数组作为参数传长度

	j = count_specific_char(str[i], strlen(str[i]), co);//注意此时字符串长度的传入方式

读取文件遇到回车

fgetc(pt);//吸取回车。此外,fgets会吸取回车,将其输出的时候有时会带着回车

复制一个文件到另一个文件里

	char ao;
	while ((ao = fgetc(in)) != EOF) {
		fputc(ao, out);
	}

fscanf从文件读取数据的保护机制

if (fscanf(in, "%d%d%d%d", &id, &c, &e, &m) != 4) {
            printf("Error reading student data\n");
            fclose(in);
            fclose(out);
            return 1;}

把各种数据串起来成字符串的函数sprintf

char Str[20];
sprintf(Str, "%3d%6.2f", id,avg);//函数返回的是写入str的字符数。
//关于输入格式,字母前是占据空间大小,前面放空格。小数点占一个空间,小数点后是浮点数精度

三目运算符的嵌套。想要实现的功能:返回对应的参数值,如果任何一个参数小于0,结构体中相应的成员设为0,如果大于255则设为255。

newColor.red = (red < 0) ? 0 : (red > 255) ? 255 : red;
//或者使用define简化
#define CLAMP(x) ((x < 0) ? 0 : (x > 255) ? 255 : x)
newColor.red = CLAMP(red);

仅仅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值