前两章习题较简单,这里就不作整理了,直接从第三章开始(持续更新):
Chapter 3. Strings, Vectors and Arrays Exercise 3.1part 1
#includeusing std::cin; using std::cout; using std::endl; int main() { int sum = 0, val = 1; while (val <= 10) { sum += val; ++val; } cout << "Sum of 1 to 10 inclusive is " << sum << endl; return 0; }
part 2
#includeExercise 3.2using std::cin; using std::cout; using std::endl; using std::cerr; struct Sales_data { std::string bookNo; unsigned unit_sold = 0; double revenue = 0.0; }; int main() { Sales_data data1, data2; double price = 0; cin >> data1.bookNo >> data1.unit_sold >> price; data1.revenue = data1.unit_sold * price; cin >> data2.bookNo >> data2.unit_sold >> price; data2.revenue = data2.unit_sold * price; if (data1.bookNo == data2.bookNo) { unsigned totalCnt = data1.unit_sold + data2.unit_sold; double totalRevenue = data1.revenue + data2. revenue; cout << data1.bookNo << " " << totalCnt << " " << totalRevenue << " "; if (totalCnt != 0) cout << totalRevenue/totalCnt << endl; else cout << "(no sale)" << endl; return 0; } else{ cerr << "Data must refer to the same ISBN" << endl; return -1; } }
part 1
#include#include using std::string; using std::cin; using std::cout; using std::endl; int main() { string line; while (getline(cin, line)) { cout << line << endl; } return 0; }
part 2
#includeExercise 3.3#include using std::string; using std::cin; using std::cout; using std::endl; int main() { string word; while (cin >> word) cout << word << endl; return 0; }
string类输入运算符(>>):忽视一切空格,从第一个非空格字符开始,到第一个空格结束;
getline():包含换行符前的所有空格;
Exercise 3.4part 1
#include#include using std::string; using std::cin; using std::cout; using std::endl; int main() { string st1, st2; cin >> st1 >> st2; if (st1 == st2) cout << "The two strings are equal" << endl; else if (st1 > st2) cout << "The maximum string is " << st1 << endl; else cout << "The maximum string is " << st2 << endl; return 0; }
part 2
#includeExercise 3.5#include using std::string; using std::cin; using std::cout; using std::endl; int main() { string st1, st2; cin >> st1 >> st2; if (st1.size() == st2.size()) cout << "The two strings have the same length " << endl; else if (st1.size() > st2.size()) cout << "The longest string is " << st1 << endl; else cout << "The longest string is " << st2 << endl; return 0; }
part 1
#include#include using std::string; using std::cin; using std::cout; using std::endl; int main() { string total_str, str; while (cin >> str) total_str += str; cout << "The concatenated string is " << total_str << endl; return 0; }
part 2
#include#include using std::string; using std::cin; using std::cout; using std::endl; int main() { string total_str, str; while (cin >> str) if (total_str.empty()) total_str += str; else total_str += " " +str; cout << "The concatenated string is " << total_str << endl; return 0; }



