自己记录,不定时更新!
1. 定义字符串输入流istringstream
#include<sstream>
string str = "hello world";
string strWord;
istringstream strStream(str); //定义流输入变量,并初始化
while(strStream>>strWord);//流输入每次只流入一个单词,到空格为止
具体什么时候应用和用法看下面博文:
http://blog.csdn.net/fx677588/article/details/52713623 去除一段话字符串中重复单词
2. 读取的字符再返回流中ungetc(c,stdin )
#include<cstdio>
char c;
while((c= getchar())!='\n')
ungetc(c,stdin); //getchar()从流中获得的字符,再返回到流中
具体什么时候应用和用法看下面博文:
http://blog.csdn.net/fx677588/article/details/52712417 C/C++输入一行每隔一个空格一个数据
3. #include <cctype>
包含字符分类函数和转换函数
用来检查一个传入的字符型参数是否属于某一个的类别:
isalnum 检查字符是否为字母数字
isalpha 检查字符是否为字母
isblank (c++ 11) 检查字符是否为空格空白
iscntrl 检查字符是否为控制字符
isdigit 检查字符是否为十进制数
isgraph 检查字符是否有图形输出
islower 检查字符是否为小写字母
isprint 检查字符是否能输出
ispunct 检查字符是否为标点
isspace 检查字符是否为区域空白
isupper 检查字符是否为大写字母
isxdigit 检查字符是否为十六进制的数
字符转换函数:
用来在两个在大小写字母之间转换:
tolower 将大写字母转换为小写字母
toupper 将小写字母转换为大写字母
具体什么时候应用和用法看下面博文:
http://blog.csdn.net/fx677588/article/details/52713623 去除一段话字符串中重复单词
4. #include <algorithm>
一些数据处理和迭代器函数
主要会用到例如交换,反转,排序等功能函数接口
//交换
swap(w1 , w2)//交换两个数,两者可以为int,char,char*字符串数组
//反转
char nzArr[] ="abc";
string str =nzArr;
reverse(str.begin(),str.end());
reverse(nzArr,nzArr+3);//反转功能,参数是地址或迭代器
//排序,时间复杂度为n*log2(n)
int a[10]={9,6,3,8,5,2,7,4,1,0};
sort(a,a+10); //可以看出,两个参数为均地址,a为起始,a+10为结束位置,默认是从小到大升序排序
bool comp(int a, int b)
{
return a>b; //a>b,则是从大到小,a<b则从小到大排序
}
sort(a,a+10,comp);//加了这个函数,则可以从大到小降序排序
5. 移位实现乘除法
例如:
a=a*4;
b=b/4;
// 可以改为:
a=a<<2;
b=b>>2;
详细记载在该博文中:
http://blog.csdn.net/fx677588/article/details/52821904 移位运算符替代算术运算符
6.输入输出追求效率
一些笔试题追求大数据处理,为了在规定时间内完成任务,数据输入使用scanf要比cin流操作快,同理,printf也比cout快。所以数据多的时候,输入输出还是使用scanf/printf函数。