字符串的输入输出(c语言)

!


一、字符串输入

1.不幸的gets()

char * gets ( char * str );

原理 : 它读取整行输入,直到遇到换行符,然后丢弃换行符,存储其余字符,并在末尾添加一个空字符使其成为一个c字符串。

缺点 : 如果输入的字符串过长,会导致缓冲区溢出,多余的字符超出了指定的目标空间。

2.替代品——fgets()

char * fgets ( char * str, int num, FILE * stream );

原理 :fgets()函数的第二个参数指明了读入字符的最大数量,第三个参数针对于文件操作,一般情况下以stdin(标准输入)为参数,并且fgets()函数将保留换行符。

优点 :可以防止字符串过长而导致的缓冲区溢出。

3.scanf()

int scanf ( const char * format, ... );

原理 :如果使用%s转换说明,以下一个空白字符(空格,空行,制表符,换行符)都可以作为字符串的结束。
总结 :scanf更适合单词的输入,在输入句子时,建议不要使用。

二、字符串的输出

1.puts()

int puts ( const char * str );

原理 :只需要把字符串的地址作为参数传递给它即可。
总结 :因为puts()函数在显示字符串时会自动在末尾添加一个换行符,所以建议与gets()函数一起使用。

2.fputs()

int fputs ( const char * str, FILE * stream );

总结:与puts()函数不同,fputs()不会在输出的末尾添加换行符,建议与fgets()函数一起使用

3.printf()

int printf ( const char * format, ... )

总结

虽然比较简单,但我还是经常犯错,所以就当是一个小结吧。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值