文件名:hello.cpp
1、字符串的简单操作
2、函数指针数组以及通过函数指针数组的元素来调用函数
1 // 20170515
2 #include <iostream>
3 #include <vector>
4 #include <string>
5
6 //using namespace std; //后续可简化不写 std::
7
8 void trb_string()
9 {
10 std::cout<< "****************\n";
11 std::string str; //定义字符串
12 str = "Tian";
13 str += "Renbao"; //字符串后续添加内容
14 int num_size = str.size();
15 std::cout<< str << "___size:" << num_size <<std::endl;
16
17 std::string str0 ="tian";
18 std::string str1(str0); //str1 = str0
19 std::string str2 = "ren";
20 str1 += str2;
21 str1 = str1 + "bao";
22 std::cout<< str1 << "___size:" << str1.size() <<std::endl;
23 }
24
25 /*输入多行字符,“quilt”结束,并将打印输出*/
26 void trb_input()
27 {
28 std::cout<< "****************\n";
29 std::string str;
30 std::string str1;
31 int num_line = 0;
32 while(getline(std::cin,str1)) //getline()函数
33 {
34 if(str1 == "quit")
35 {
36 break;
37 }
38 str += str1;
39 str += "\n"; //每输入完一行进行保存时加上换行符,实现将多行字符分行输出显示
40 num_line++;
41 }
42 std::cout<< "total chars:" << str.size() << "\t" << "total lines:" << num_line <<std::endl;
43 std::cout<< str << std::endl;
44 }
45
46 /* 输入多行字符,“quit”结束,并将每行打印输出_每行的最前面显示行号_每行的最后面显示该行的字符数*/
47 void trb_vector()
48 {
49 std::cout<< "****************\n";
50 std::string str_temp;
51 std::vector<std::string> vect;
52 while(getline(std::cin,str_temp))
53 {
54 if(str_temp == "quit")
55 {
56 break;
57 }
58 vect.push_back(str_temp); //push_back()添加内容到末尾
59 }
60
61 int num_char = 0;
62 for(int i = 0; i < vect.size(); i++) //vector的size()为矢量个数,即有多少行
63 {
64 std::string s = vect[i];
65 num_char += s.size(); //vector中每个矢量的大小相加得到vector总的大小
66 }
67 std::cout<< "total lines: "<< vect.size() << "\t" << "total chars: " << num_char <<std::endl;
68 for(int i = 0; i < vect.size(); i++)
69 {
70 std::string s = vect[i];
71 std::cout<< i << "\t" << s << "\t" << s.size() <<std::endl; //输出时在每一行的前面加上行号,后面加上该行的字符数
72 }
73 }
74
75 int main(int argc, char *argv[])
76 {
77 int a = 3;
78 std::cout<<"Hello World!\n";//<<std::endl;
79 std::cout<< (a==0 ? "a=0":"a!=0") <<std::endl; //三目运算符
80
81 std::cout<< "****************" <<std::endl;
82 std::vector<int> aa; //定义数组
83 aa.push_back(10); //数组元素赋值
84 aa.push_back(20); //push_back()添加内容到末尾
85 std::cout<< "数组aa的第一个元素为:";
86 std::cout<< aa[0] <<std::endl; //下标从0开始
87 std::cout<< "数组aa的元素个数为:" << aa.size() <<std::endl; //.size()
88
89 std::cout<< "****************" <<std::endl;
90 /*遍历数组并输出*/
91 for(int i=0; i<aa.size(); i++)
92 {
93 std::cout<< "数组aa的第" << i << "个元素为" << aa[i] <<std::endl;
94 }
95
96 void (*p_fun[3])(); //定义函数指针数组,是的,一个数组
97
98 p_fun[0] = trb_string; //将函数名(即指针)赋予给 数组
99 p_fun[1] = trb_input;
100 p_fun[2] = trb_vector;
101
102 p_fun[0](); //通过数组元素调用函数
103 p_fun[1]();
104 p_fun[2]();
105
106 return 0;
107 }