目录
将不定时更新
fixed()
消除浮点数的科学计数法
只要出现了fixed,则后面都是以fixed输出。
用定点表示法表示浮点数
代码:
double n = 0.2345678;
float m = 0.2345678;
double a = 12345678;
float b = 12345678;
cout<<b<<endl;
cout<<fixed<<b<<endl;
cout<<n<<" "<<m<<" "<<a<<endl;
运行结果:
1.23457e+007
12345678.000000
0.234568 0.234568 12345678.000000
setprecision()
fixed与setprecision(n)连用可以控制小数点后的位数,现在就可以理解为那是定点数记数法。
如果没有fixed的话,就是浮点数记数法了,那么它控制的应该就是有效数字的位数(包括小数点前的)
#include<iostream>
#include <iomanip> //注意加头文件
using namespace std;
int main(){
double n = 0.2345678;
float m = 0.2345678;
double a = 12345678;
float b = 12345678;
cout<<b<<endl;
cout<<setprecision(1)<<b<<endl;
cout<<setprecision(2)<<b<<endl;
cout<<setprecision(1)<<fixed<<b<<endl;
cout<<n<<" "<<m<<" "<<a<<endl;
return 0 ;
}
运行结果:
1.23457e+007
1e+007
1.2e+007
12345678.0
0.2 0.2 12345678.0
setw()
其控制后面输出的长度,默认右对齐,输出内容长度不够用空格补齐,输出内容长度超过则正常输出。
注意:
-
setw()只对后面紧跟的输出有限制。
-
标点符号占一位!
#include<iostream>
#include <iomanip> //别忘了头文件
using namespace std;
int main(){
double n = 0.2345678;
float m = 0.2;
cout<<n<<endl;
cout<<m<<endl;
cout<<setw(10)<<n<<endl;
cout<<setw(2)<<n<<endl;
cout<<setw(10)<<m<<endl;
return 0 ;
}
运行结果:
0.234568
0.2
0.234568
0.234568 //超出,正常输出
0.2
swap()
交换两个变量
#include<iostream>
using namespace std;
int main(){
int a = 1;
int b = 2;
swap(a,b);
cout<<a<<" "<<b<<endl;
double n = 1.012;
double m = 2.023;
swap(n,m);
cout<<n<<" "<<m<<endl;
float c = 1.0;
float d = 2.0;
swap(c,d);
cout<<c<<" "<<d<<endl;
char i = 'A';
char j = 'B';
cout<<i<<" "<<j<<endl;
swap(i,j);
cout<<i<<" "<<j<<endl;
string w = "笨";
string e = "蛋";
cout<<w<<" "<<e<<endl;
swap(w,e);
cout<<w<<" "<<e<<endl;
}
运行结果:
2 1
2.023 1.012
2 1
A B
B A
笨 蛋
蛋 笨
sort()
进行排序
#include<bits/stdc++.h> //注意头文件
using namespace std;
int main()
{
string s = "WHERETHEREISAWILLTHEREISAWAY";
//直接排序
sort(s.begin(), s.end());
cout<<s<<endl;
return 0;
}
运行结果:
AAAEEEEEEHHHIIILLRRRSSTTWWWY
对数组进行排序:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[5] = {2,5,1,3,4};
sort(a,a+5);
for(int i = 0 ; i < 5 ; i++){
cout<<a[i];
}
return 0;
}
运行结果:
12345
subsrt()
对字符串进行切割
#include<iostream>
using namespace std;
int main(){
string str = "hello";
for(int i = 0 ; i < str.size() ; i++){
cout<<str.substr(i,1)<<endl;
cout<<str.substr(i,2)<<endl; \\前面的i代表从字符串第几个开始切割,后面的数字代表切割几个
}
return 0;
}
运行结果:
h
he
e
el
l
ll
l
lo
o
o
atoi()
atoi()函数将数字格式的字符串转换为整数类型。例如,将字符串“12345”转换成数字12345。
-
c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同。
-
这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。
#include<iostream>
using namespace std;
int main(){
string str = "1234";
cout<<atoi(str.c_str())<<endl;
string a = "1";
cout<<a.c_str()<<endl;
return 0;
}
运行结果:
1234
1
咱们可以来判断一下变量类型
#include<iostream>
#include<typeinfo> //头文件
using namespace std;
int main(){
string str = "1234";
cout<<typeid(atoi(str.c_str())).name()<<endl;
string a = "1";
cout<<typeid(a.c_str()).name()<<endl;
return 0;
}
运行结果:
i \\int(i)
PKc \\pointer(P) const(K) char(c)