【c/c++易混知识】

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)
img

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()保留回车在输入流队列中 (缓冲区)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值