字符串与空格的恩怨情仇

字符串与空格的输入总结

今天下午,又双叒叕遇到了对字符串的处理的题,这种题对字符的输入要求很严格,本人写到自闭。。。。。。

字符串的输入

1.cin

以空格 制表符 以及 回车符结束
无法吸收空格 制表符 回车符
输入结束后缓冲区会有一个空格或回车符

2.scanf

格式输入,以空格 制表符 回车符结束
可以吸收空格 制表符 回车,但不能将这些复制给变量(%c除外)
输入结束后缓冲区会有一个空格或回车符

3.gets

读入一行,包括空格 制表符,以回车符结束
输入结束后缓冲区没有一个空格或回车符

4.getline

读入一行,包括空格 制表符,以回车符结束
输入结束后缓冲区没有一个空格或回车符
和gets几乎没有区别,但gets比较危险,现在被停用(我也不知道为啥)

用法:getline(cin,s)
有些文章的用法并非如此,但我比较喜欢这个

5.getchar

从缓冲区吸收一个字符(前面反复提到的缓冲区问题均可由次解决),可以吸收任何字符(包括空格 制表符 回车符)通常放在scanf 和cin,getline后面吸收缓冲区的空格及回车符,防止影响下一个字符的输入

特殊用法:for(i=0;(str[i]=getchar())!=‘\n’;i++)
读入一行数据,存入str中

6.#include <sstream>

getline ( cin , str )

stringstream sin(str);

string t;

while(sin>>t){
	//此时str内的字符串会被空格隔开依次输入给t
}

字符串的输出

1.cout

cout可以输出string类,不能输出char类
格式输出大佬版本 我的版本

2.printf

不能输出string类在这里插入图片描述

3.puts

puts的输出十分简单,输出一行字符串,将最后的‘\0’当做’\n’处理,换行
puts也不能输出string类

当然,针对字符串的输入输出问题还有一堆,目前接触比较多的是这些,暂时也只能想到这些,如果下次又遇到陌生的,会继续补上。
以后这种问题,必拿下!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值