特殊函数 (一直更新)
1.isprintf(s[i]);判断一个字符是否能输出
1.1代码展示:
#include <iostream> #include <string.h> using namespace std; int main() { string s = "12d1 2 ddsd"; int d = 0; for (int i = 0; i<s.length(); i++) { if (s[i] != ' ' && isprint(s[i])) //判断不为空格 且能输出; { s[d++] = s[i]; } } cout << "改变后的字符串是:" << endl; for (int i = 0; i < d; i++) { cout << s[i]; } }
1.2效果展示:
2.setw()函数的运用
2.1理论知识:
setw(int n)是c++中在输出操作中使用的字段宽度设置,设置输出的域宽,n表示字段宽度。只对紧接着的输出有效,紧接着的输出结束后又变回默认的域宽。
当后面紧跟着的输出字段长度小于n的时候,在该字段前面用空格补齐;当输出字段长度大于n时,全部整体输出。
2.2空格补齐型隔离(n>1)
代码展示:
#include <iostream> #include <iomanip> using namespace std; int main() { int a[3] = {1,2,3}; for (int i = 0; i < 3; i++) { cout << setw(2) << a[i]; //setw(n) } return 0; }
效果展示:
2.3整体输出型 紧接(n<1)
#include <iostream> #include <iomanip> using namespace std; int main() { int a[3] = {1,2,3}; for (int i = 0; i < 3; i++) { cout << setw(0) << a[i]; //setw(n) } return 0; }
效果展示:
2.4只对接着的有效
代码展示:
#include <iostream> #include <iomanip> using namespace std; int main() { int a[3] = {1,2,3}; for (int i = 0; i < 3; i++) { cout << setw(2) << a[i]<<4; } return 0; }
效果展示:
3.setfill()补充填充
代码展示:
#include <iostream> #include <string.h> #include <iomanip> using namespace std; int main() { string s = "123"; cout << setw(5) << setfill('*') << s << endl; // 共设置5个空间,用不满的在前面加*,用不满的话不用 return 0; }
效果展示
4.sort()函数排序问题
4.1理论展示:
1.如果用sort进行排序,那么需要用头文件#include
2、sort模板含三个参数:
sort (begin,end,cmp)
参数begin:要排序数组的起始地址(第一个数据的地址)
参数end:最后一个数据的下一个数据的地址
参数cmp:若这个参数不写,默认为升序
4.2 默认不写(为升序)
代码展示
#include <iostream> #include <string.h> #include <algorithm> using namespace std; int main() { int i; string s; cin >> s; sort(s.begin(), s.end()); for (i = 0; i < s.length(); i++) { cout << s[i] << " "; } return 0; }
效果展示:
4.3写了cmp依旧为升序:
代码展示
#include <iostream> #include <algorithm> using namespace std; bool cmp(int a,int b) { return a<b; //或则在cmp函数里面写return a<b,也是升序 } int main() { int a[]={6,5,8,4,3,2},i; sort(a,a+6,cmp); for(i=0;i<5;i++) { cout<<a[i]<<" "; } return 0; }