1.数据类型范围/精度
signed char:[-2^7, 2^7)即[-128, 128);
unsigned char:[0, 2^8)即[0, 256);
signed n位整数:[-2^(n-1), 2^(n-1));
unsigned n位整数:[0, 2^n)
1.1.scanf ( “%15Lf”, &x );//强制提高精度
“%20Lf” 强制将long double 转换成20精度
-
各种类型浮点数的精度:
-
float:6~7位;
-
double:15~16位;
-
long double:18~19位。
2.cin.peek()函数
cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,
但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的字符是文件结束符,则函数值是EOF(-1)。
3.strlen()//s.length() 函数
strlen() char 的长度
s.length() string s 的长度
4.memset(str,0,sizeof(str))函数
//字符串归零
5.取整函数
ceil() 函数:向上取整
floor()函数:向下取整
round()函数:四舍五入
6.sort函数
7.输出字符控制小数点
cout<<setiosflags(ios::fixed)<<setprecision(6)
注意!c++除法等操作精度不够 小数点后位数多的话 输出后面精度不强 全为0;
8.字符串string
8.1.P1055:字符串与整型转换
注意!字符串==整型时 acsii码!
8.2.for循环拷贝至字符串
!!仅改变了str的串内容,并没有改变str的length长度.
8.3.string构造函数
string str; //生成一个空字符串
string str ("ABC"); //等价于 str="ABC"
string str ("ABC", strlen); // 将"ABC"存到str里,最多存储前strlen个字节
eg:string str ("ABC", 2) cout:AB;
string str("ABC",stridx,strlen); //将"ABC"的stridx位置,做为字符串开头,存到str里.且最多存储strlen个字节.
eg:string str("ABC",1,2) cout:BC;
string str(strlen, 'A'); //存储strlen个'A'到str里
eg:string str(2, 'A') cout:AA;
8.4.成员函数
string str1="aaa";
char c='c';
str1.assign("ABCAAAAAAABBBBB");//替换str1
string str2="1111111";
cout<<"长度"<<str1.length()<<endl;//获取字符串长度
//(长度==数量)
cout<<"字符串数量"<<str1.size()<<endl;//获取字符串数量,等价于length()
cout<<"获取容量"<<str1.capacity()<<endl;//获取容量,容量包含了当前string里不必增加内存就能使用的字符数 //15为单位增加
str1.resize(20);//表示设置当前string里的串大小,若设置大小大于当前串长度,则用字符\0来填充多余的.
str1.resize(25,c);//设置串大小,若设置大小大于当前串长度,则用字符c来填充多余的
str1.reserve(10);//设置string里的串容量,不会填充数据.//数据多余10 容量+10;小于10 容量=10;
//str1.swap(str2);//替换str1 和 str2 的字符串
str1.push_back('A');//在str1末尾添加一个'A'字符,参数必须是字符形式
str1.append ("ABC");//在str1末尾添加一个"ABC"字符串,参数必须是字符串形式
str1.insert(1,"cha");//在str1的下标为1的位置,插入"cha"
// str1.erase(1);//删除下标为2的位置,比如: "ABCD" --> "AB" //循环删除:删除下标为2以后的全部
str1.erase(1,3);//从下标为2的位置删除1个,比如: "ABCD" --> "ABD"
// str1.clear();//删除所有
str1.replace(1,3, "WWW"); //从下标为1的位置,替换3个字节,为"WWW"
str1.empty();//判断为空, 为空返回真true
cout<<"str1:"<<str1<<endl;
//cout<<"str2:"<<str2<<endl;
9.输入字符串
9.1.cin
string char int 都可,遇空格或回车停止 ;
//9.2.gets()
c++中使用首字符丢失!!!
gets()接受参数为char*,不是string。另外若定义char ch[n],输入的字符串长度>n,会报错 ;
9.3. getline(cin,str)
string定义字符串输入 回车停止;
注意!: 使用**while(getline(cin,line))**时
结束循环条件:getline函数失效即输入EOF或ctrl+z (而不是输入回车或自定义的输入停止符; )
进入循环条件:getline函数输入完成;
eg:
while(getline(cin,str))
{
cout<<str<<endl;
}
9.4. cin.getline(char * , int)
char定义字符数组输入 回车停止;
**注意!:**cin.getline()当输入超长时,会引起cin函数的错误,后面的cin操作将不再执行
9.5.cin.get()
char定义字符数组输入 回车停止;
cin.get()保留回车在输入流队列中 (缓冲区)