1 #include "iostream"
2 #include "iomanip"
3 #include "cstdio"
4 using namespace std;
5 int main()
6 {
7 ///Type conversion and casts 类型的转换和强转
8 ///char<short<int<=long<float<double 字节大小 占用存储空间上升
9 ///C++输入输出
10 ///Manipulator流操纵符 设定输出流格式
11 ///setw()宽度setfill()填充字符setprecision()数据域位数fixed()小数点数
12 int a=123;
13 cout<<"without setw():"<<a<<endl;
14 cout<<"with setw():"<<setw(10)<<a<<endl;///过宽 左补空格,过窄原样输出,无后效性
15 cout<<setw(10)<<setfill('#')<<a<<endl;
16 cout<<left<<setw(10)<<setfill('#')<<a<<endl;///数左靠齐 默认右靠齐
17 double b=12300.44678;
18 cout<<"without setprecision():"<<b<<endl;///默认数据显示的最大位数为6 4四舍五入
19 cout<<setprecision(7)<<b<<endl;
20 cout<<fixed<<setprecision(8)<<b<<endl;///设置小数位数 按定点小数非科学计数法 有后效性
21
22 ///单个字符的输入输出
23 char c;
24 cin>>c;///默认cin忽略空白字符
25 ///需要从键盘读入单个字符,不管其空白与否,,使用流操纵符noskipws
26 //cin>>noskipws>>c;
27 //cin.get(c);///或者 也读
28 cout.put(c);
29
30 cout<<"++66"<<endl;
31 char d;
32 cin>>d;
33 cout<<"d"<<d<<endl;
34 switch(d)
35 {
36 case '+': cout<<"++++"<<endl; break;
37 case '-':cout<<"----"<<endl;break;
38 case '*':cout<<"****"<<endl;break;
39 case '/':cout<<"////"<<endl;break;
40 }
41
42
43 }
1 #include "cstdlib"
2 #include "cstring"
3 #include "string"
4 int main()
5 {
6 ///字符串
7 ///cin同scanf不读入空格(空格当做分隔符结束)
8 ///cin.getline(数组名,最大读入字符数,结束符);读入一行 同gets()
9 ///注意回车读入,用cin.get(dummy) /cin.ignore(80,'\n');/getchar();
10 ///最多忽略80个字符,忽略遇到回车结束避免
11
12 ///C-style
13 char c_string[]="sharon";
14 char c_string1[6];
15 int len=strlen(c_string);
16 /*strcpy(name1,name);///将name中字符串复制到name1
17 strcat(name,name1);
18 strcmp(name,name1);*/
19 ///strncpy(str1,str2,n);前n个strncat(str1,str2,n);strncmp(str1,str2,n);
20 char str1[]="123.3";
21 int strI=atoi(str1);
22 int strL=atol(str1);
23 double strD=atof(str1);
24 cout<<strI<<endl;
25 cout<<strD<<endl;
26
27 ///C++-style
28 ///赋值与初始化
29 string str11="abcdefg";
30 string str12(12,'-');
31 string str13=str12;
32 str12.assign(3,'.');
33 str12.assign(str11,1,3);///复制对象,从下标几开始,复制几个
34 str12.swap(str11);///交换
35
36 ///连接
37 str11=str12+str13;
38 str13+="ect";
39 str13.append(".ect");
40 str13.append(str11,0,2);///添加对象,从下标为几开始,后延几个
41
42 ///访问
43 str11[0]=str11[str11.length()-1];
44 str11.at(0)='*';///与[]不同,.at()进行越界检查
45 str11.substr(0,4);///从下标0开始,后延几个的字串
46
47 ///替代 擦除 插入
48 str11.replace(2,3,str12,2,4);///将str11的下标为234(后延3位)的字串
49 ///替换为str12 下标为2345的字串
50 str11.replace(1,3,str12);
51
52 str11.erase(9);///擦除下标9之后所有,包括9
53 str11.erase(4,2);///擦除下标为4,5的字符
54 str11.erase();///全擦
55
56 if(str11.empty()){
57 str11.insert(4,str12,1,6);///插到索引位置4前面
58 }
59 str11.insert(4,str12);///全插
60
61 int p=str11.find("abc");///从左向右找 存在返回下标,不存在返回-1
62 str11.rfind("abc");///查找最后一次abc位置
63 p=str11.find_first_of("abc");///返回第一次出现a,b,or c的下标,否则返回-1
64 p=str11.find_last_of("abc");///最后一次出现
65 p=str11.find_first_not_of("abc");
66 p=str11.find_last_not_of("abc");
67
68 ///输入
69 getline(cin,str11,'\n');///遇到回车读入结束
70 cin>>str11;///不读空格
71 getline(cin,str11);///读取一行
72
73
74 ///C C++字符串相互转换
75
76 string cpp_string="abcdef";
77 char c_string[6];
78 ///C++->C
79 int len =cpp_string.length();
80 cpp_string.copy(c_string,len);///len表示多少字符//此命令不拷贝'\0'
81 c_string[len]='\0';
82 cpp_string.copy(c_string,2,0);///转换字串
83 c_string[2]='\0';
84
85 strcpy(c_string,cpp_string.c_str());///无须考虑大小
86
87 ///C->C++
88 cpp_string=c_string;
89 }