2021-7-4-snprintf和不用第三个变量来交换值

本文介绍了C语言中的snprintf函数,用于安全地格式化字符串并限制写入缓冲区的字节数,防止溢出。同时讲解了getc函数,用于从文件或输入缓冲区读取字符。最后讨论了异或操作在无额外变量交换两个值中的应用,这是密码学中常见的可逆操作。
摘要由CSDN通过智能技术生成

snprintf函数

函数原型:int snprintf(char* dest_str,size_t size,const char* format,...);

所需头文件:<stdio.h>

第一个参数可以是缓冲区,即目的地址

第二个参数就是大小了,最多能写进缓冲区的字节数可以防止溢出

第三个参数可以是带有格式的字符串犹如"asdasd%d%c"等等和printf一样

第四部分及后就是接着上面的printf,为格式符 赋值。

getc

所需头文件:stdio

int getc(FILE *stream);//read the next character from stream and return it as an unsigned char cast to a int ,or EOF on end of file or error.

用法介绍:

用 法: int getc(FILE *stream);

从文件指针stream指向的文件流中读取一个字符,并把它作为函数值返回给整型变量ch,并把位置标识符往前移动。

如果读取失败或者到了文件结束标志返回EOF(-1)【百度百科】

我们可以从输入缓冲区读字符,即getc(stdin);此时缓冲区相当于一个文件

利用异或来进行交换值

密码学中可解密的过程基本少不了异或,因为这个运算本身就是可逆的。

a

b

现欲交换ab

a=a^b

b=a^b   [即(a^b)^b=a]

a=a^b   [即(a^b)^a=b]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值