重庆建设工程公司网站,家教网站建设模板,百度账号一键登录,网站开发接活文章目录练习3.1练习3.2一次读入一行一次读入一个词练习3.3练习3.4大的字符串长度大的字符串练习3.5未隔开的隔开的练习3.6练习3.7练习3.8练习3.9练习3.10练习3.1 使用恰当的using 声明重做 1.4.1节和2.6.2节的练习。 // 1.4.1
#include iostreamusing std::cin;
using…
文章目录练习3.1练习3.2一次读入一行一次读入一个词练习3.3练习3.4大的字符串长度大的字符串练习3.5未隔开的隔开的练习3.6练习3.7练习3.8练习3.9练习3.10练习3.1 使用恰当的using 声明重做 1.4.1节和2.6.2节的练习。 // 1.4.1
#include iostreamusing std::cin;
using std::cout;
using std::endl;int main()
{int sum 0;for (int val 1; val 10; val) sum val;cout Sum of 1 to 10 inclusive is sum endl;return 0;
}// 2.6.2
#include iostream
#include string
#include exercise2_42.husing std::cin;
using std::cout;
using std::endl;
using std::cerr;int main()
{Sales_data data1, data2;double price 0; cin data1.bookNo data1.units_sold price;data1.revenue data1.units_sold * price;cin data2.bookNo data2.units_sold price;data2.revenue data2.units_sold * price;if (data1.bookNo data2.bookNo){unsigned totalCnt data1.units_sold data2.units_sold;double totalRevenue data1.revenue data2.revenue;cout data1.bookNo totalCnt totalRevenue ;if (totalCnt ! 0)cout totalRevenue / totalCnt endl;elsecout (no sales) endl;return 0; }else{ cerr Data must refer to the same ISBN endl;return -1; }
}练习3.2 编写一段程序从标准输入中一次读入一行然后修改该程序使其一次读入一个词。 一次读入一行
#include iostream
#include stringusing std::string;
using std::cin;
using std::cout;
using std::endl;
using std::getline;int main()
{string s;while (getline(cin,s)){cout s endl;}return 0;
}一次读入一个词
#include iostream
#include stringusing std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string s;while (cin s){cout s endl;}return 0;
}练习3.3 请说明string类的输入运算符和getline函数分别是如何处理空白字符的。 类似 is s 的读取string对象会忽略开头的空白并从第一个真正的字符开始直到遇见下一空白为止。类似 getline(is, s) 的读取string对象会从输入流中读取字符直到遇见换行符为止。
练习3.4 编写一段程序读取两个字符串比较其是否相等并输出结果。如果不相等输出比较大的那个字符串。改写上述程序比较输入的两个字符串是否等长如果不等长输出长度较大的那个字符串。 大的字符串
#include iostream
#include string
using std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string str1, str2;while (cin str1 str2){if (str1 str2)cout The two strings are equal. endl;elsecout The larger string is ((str1 str2) ? str1 : str2);}return 0;
}长度大的字符串
#include iostream
#include string
using std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string str1, str2;while (cin str1 str2){if (str1.size() str2.size())cout The two strings have the same length. endl;elsecout The longer string is ((str1.size() str2.size()) ? str1 : str2) endl;}return 0;练习3.5 编写一段程序从标准输入中读入多个字符串并将他们连接起来输出连接成的大字符串。然后修改上述程序用空格把输入的多个字符串分割开来。 未隔开的
#include iostream
#include stringusing std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string result, s;while (cin s){result s;}cout result endl;return 0;
}隔开的
#include iostream
#include stringusing std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string result, s;while (cin s){result s ;}cout result endl;return 0;
}练习3.6 编写一段程序使用范围for语句将字符串内所有字符用X代替。 #include iostream
#include string
#include cctypeusing std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string s this is a string;for (auto x : s){x X;}cout s endl;return 0;
}练习3.7 就上一题完成的程序而言如果将循环控制的变量设置为char将发生什么先估计一下结果然后实际编程进行验证。 如果设置为char那么原来的字符串不会发生改变。
#include iostream
#include string
#include cctypeusing std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string s this is a string;for (char x : s){x X;}cout s endl;return 0;
}练习3.8 分别用while循环和传统for循环重写第一题的程序你觉得哪种形式更好呢为什么 范围for语句更好不直接操作索引更简洁。
#include iostream
#include string
#include cctypeusing std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string s this is a string;decltype(s.size()) i 0;while (i ! s.size()){s[i] X;i;}cout s endl;for (i 0; i ! s.size(); i){s[i] Y;}cout s endl;return 0;
}练习3.9 下面的程序有何作用它合法吗如果不合法为什么 string s;
cout s[0] endl;不合法。使用下标访问空字符串是非法的行为。
练习3.10 编写一段程序读入一个包含标点符号的字符串将标点符号去除后输出字符串剩余的部分。 #include iostream
#include string
#include cctypeusing std::string;
using std::cin;
using std::cout;
using std::endl;int main()
{string s this, is. a :string!;string result;for (auto x : s){if (!ispunct(x)){result x;}}cout result endl;return 0;
}